public void SetLaserpointerEnabled(bool enabled)
 {
     if (!enabled && PointingAt != null)
     {
         PointingAt.PointerExit(this);
         PointingAt = null;
     }
     SetLaserVisible(enabled);
     _laserIsEnabled = enabled;
 }
        private void SetNewHitTarget(ILaserPointerTarget newTarget)
        {
            var targetIsSame = (newTarget == PointingAt || IsLockedAtTarget);

            if (targetIsSame)
            {
                // Update position on Target
                if (PointingAt != null)
                {
                    PointingAt.PointerUpdate(this);
                }
                return;
            }

            if (Controller.ActiveState == InteractiveController.States.PointerCapturedOnClickable)
            {
                return;
            }

            // Exit old target
            if (PointingAt != null && !PointingAt.Equals(null)) // Also checking with .Equals because ==Operator is not overridden from MonoBehaviour
            {
                PointingAt.PointerExit(this);
            }

            PointingAt = newTarget;
            UpdateStyleIfTargetChanged();

            if (NewTargetEnteredEvent != null)
            {
                NewTargetEnteredEvent(this, new PointingAtChangedEventArgs(PointingAt, newTarget));
            }

            if (newTarget != null)
            {
                newTarget.PointerEnter(this);
            }
        }
示例#3
0
        void UpdateTitle(GameTime gameTime)
        {
            elapsedMilliseconds -= gameTime.ElapsedGameTime.Milliseconds;

            if (toMenu)
            {
                //Runs once every time the game returns to the menu (not on every loop), use this for single functions
                printString.Do(this, new Vector2(65, 180), "start game", 0.1f, 35, fontSheetSprite, fontSheetTexture);
                printString.Do(this, new Vector2(65, 230), "options", 0.1f, 35, fontSheetSprite, fontSheetTexture);
                printString.Do(this, new Vector2(58, 280), "bonus content", 0.1f, 35, fontSheetSprite, fontSheetTexture);
                printString.Do(this, new Vector2(65, 330), "exit", 0.1f, 35, fontSheetSprite, fontSheetTexture);

                printString.Do(this, new Vector2(0, 0), "Hello", 0.1f, 35, fontSheetSprite, fontSheetTexture);

                toMenu = false;
            }

            currentKeyState = Keyboard.GetState();

            if (oldKeyState == null)
            {
                oldKeyState = currentKeyState;
            }

            currentPadState = GamePad.GetState(PlayerIndex.One);

            if (oldPadState == null)
            {
                oldPadState = currentPadState;
            }

            if ((currentKeyState.IsKeyDown(Keys.Down))) // For navigating the Main Menu     && (oldKeyState.IsKeyUp(Keys.Down)
            {
                if (pointIndex < 3)
                {
                    pointIndex++;
                }
                else
                {
                    pointIndex = 0;
                }
            }
            if ((currentKeyState.IsKeyDown(Keys.S)) && (oldKeyState.IsKeyUp(Keys.S))) // Alternate button navigation (WASD) ((Subject to change when options are up))
            {
                if (pointIndex < 3)
                {
                    pointIndex++;
                }
                else
                {
                    pointIndex = 0;
                }
            }
            if ((currentKeyState.IsKeyDown(Keys.Up)) && (oldKeyState.IsKeyUp(Keys.Up))) // For navigating the Main Menu
            {
                if (pointIndex > 0)
                {
                    pointIndex--;
                }
                else
                {
                    pointIndex = 3;
                }
            }
            if ((currentKeyState.IsKeyDown(Keys.W)) && (oldKeyState.IsKeyUp(Keys.W))) // Alternate button navigation (WASD) ((Subject to change when options are up))
            {
                if (pointIndex > 0)
                {
                    pointIndex--;
                }
                else
                {
                    pointIndex = 3;
                }
            }


            if (pointIndex == 0)
            {
                CurrentPoint = PointingAt.PLAY;

                pointerSprite.UpperLeft = new Vector2(10, 170);
            }
            if (pointIndex == 1)
            {
                CurrentPoint = PointingAt.OPTIONS;

                pointerSprite.UpperLeft = new Vector2(10, 220);
            }
            if (pointIndex == 2)
            {
                CurrentPoint = PointingAt.BONUS;

                pointerSprite.UpperLeft = new Vector2(10, 270);
            }
            if (pointIndex == 3)
            {
                CurrentPoint = PointingAt.EXIT;

                pointerSprite.UpperLeft = new Vector2(10, 320);
            }

            if ((currentKeyState.IsKeyDown(Keys.Enter)) && (oldKeyState.IsKeyUp(Keys.Enter)))
            {
                if (CurrentPoint == PointingAt.PLAY)
                {
                }
                if (CurrentPoint == PointingAt.OPTIONS)
                {
                }
                if (CurrentPoint == PointingAt.BONUS)
                {
                }
                if (CurrentPoint == PointingAt.EXIT)
                {
                    Exit();
                }
            }

            oldKeyState = currentKeyState;
        }