Exemple #1
0
        public override void Update(TimeSpan dt)
        {
            MouseState mouse = Program.Mouse;
            Position   mpos  = new Position(mouse.X, mouse.Y);

            if (Contains(mpos) && State == GameButtonState.Up)
            {
                State   = GameButtonState.Hover;
                Clicked = false;
                EnteringHover();
            }
            if (Contains(mpos) && mouse.LeftButton == ButtonState.Pressed && State == GameButtonState.Hover)
            {
                State   = GameButtonState.Down;
                Clicked = false;
                EnteringDown();
            }
            if (Contains(mpos) && mouse.LeftButton == ButtonState.Released && State == GameButtonState.Down)
            {
                State   = GameButtonState.Hover;
                Clicked = true;
                EnteringHover();
            }
            if (!Contains(mpos) && State != GameButtonState.Up)
            {
                State   = GameButtonState.Up;
                Clicked = false;
                EnteringUp();
            }
        }
Exemple #2
0
 public Button(Texture2D Normal,Texture2D Click, Vector2 Position)
 {
     _position = Position;
     _normal = Normal;
     _click = Click;
     _buttonState = GameButtonState.Normal;
     _origin = new Vector2(_normal.Width / 2, _normal.Height / 2);
     _scale = 1f;
     Draw = true;
 }
Exemple #3
0
        public void RestoreWith(State state)
        {
            gameButtonState    = (GameButtonState)state;
            nameLabel.text     = gameButtonState.fileName;
            levelLabel.text    = gameButtonState.levelName;
            dateTimeLabel.text = gameButtonState.dateTime.ToLocalTime().ToString(DateTimePattern);

            parentMenu = GetComponentInParent <Menu>();

            transform.localScale = Vector3.one;
        }
Exemple #4
0
        public static void Intialzie()
        {
            keyboardStateButtons = new Dictionary<Keys, GameButtonState>();

            leftMouseButton = GameButtonState.Up;
            rightMouseButton = GameButtonState.Up;

            leftGamepadButton = GameButtonState.Up;
            rightGamepadButton = GameButtonState.Up;

            Array keys = Enum.GetValues(typeof(Keys));

            foreach (Keys key in keys)
            {
                keyboardStateButtons.Add(key, GameButtonState.Up);
            }
        }
Exemple #5
0
    void OnClick_Btn(GameButtonState pBtnType)
    {
        Debug.LogFormat($"Click {pBtnType.ToString()}");

        var tGamepadState = GamepadButtons.Clear;

        if (Utils.TryEnumParse(pBtnType, out tGamepadState))
        {
            SmartGlassManager.instance.SendGamepadState(new GamepadState()
            {
                Buttons = tGamepadState
            });
        }
        else
        {
            throw new Exception(string.Format($"未实现:{pBtnType.ToString()}"));
        }
    }
Exemple #6
0
        public static void Update(GameTime gameTime)
        {
            MouseState currentMouseState = Mouse.GetState();
            Keys[] pressedKeys = Keyboard.GetState().GetPressedKeys();
            GamePadState currentGamePad = GamePad.GetState(PlayerIndex.One, GamePadDeadZone.Circular);
            Dictionary<Keys,KeyState> currentKeyState = new Dictionary<Keys,KeyState>();

            #region Mouse Update

            if(currentMouseState.LeftButton == ButtonState.Pressed)
            {
                switch (leftMouseButton)
                {
                    case GameButtonState.Pressed:
                        leftMouseButton = GameButtonState.Down;
                    break;
                    case GameButtonState.Released:
                        leftMouseButton = GameButtonState.Pressed;
                    break;
                    case GameButtonState.Down:
                        leftMouseButton = GameButtonState.Down;
                    break;
                    case GameButtonState.Up:
                        leftMouseButton = GameButtonState.Pressed;
                    break;
                }
            }
            else
            {
                switch (leftMouseButton)
                {
                    case GameButtonState.Pressed:
                        leftMouseButton = GameButtonState.Released;
                    break;
                    case GameButtonState.Released:
                        leftMouseButton = GameButtonState.Up;
                    break;
                    case GameButtonState.Down:
                        leftMouseButton = GameButtonState.Released;
                    break;
                    case GameButtonState.Up:
                        leftMouseButton = GameButtonState.Up;
                    break;
                }
            }

            if(currentMouseState.RightButton == ButtonState.Pressed)
            {
                switch (rightMouseButton)
                {
                    case GameButtonState.Pressed:
                        rightMouseButton = GameButtonState.Down;
                    break;
                    case GameButtonState.Released:
                        rightMouseButton = GameButtonState.Pressed;
                    break;
                    case GameButtonState.Down:
                        rightMouseButton = GameButtonState.Down;
                    break;
                    case GameButtonState.Up:
                        rightMouseButton = GameButtonState.Pressed;
                    break;
                }
            }
            else
            {
                switch (rightMouseButton)
                {
                    case GameButtonState.Pressed:
                        rightMouseButton = GameButtonState.Released;
                    break;
                    case GameButtonState.Released:
                        rightMouseButton = GameButtonState.Up;
                    break;
                    case GameButtonState.Down:
                        rightMouseButton = GameButtonState.Released;
                    break;
                    case GameButtonState.Up:
                        rightMouseButton = GameButtonState.Up;
                    break;
                }
            }

            #endregion

            #region Keyboard Update

            //Clear the keyboard state
            Array keys = Enum.GetValues(typeof(Keys));
            foreach (Keys key in keys)
            {
                currentKeyState[key] = KeyState.Up;
            }

            foreach (Keys key in pressedKeys)
            {
                currentKeyState[key] = KeyState.Down;
            }

            foreach (KeyValuePair<Keys,KeyState> keyPair in currentKeyState)
            {
                switch (keyboardStateButtons[keyPair.Key])
                {
                    case GameButtonState.Pressed:
                        if (keyPair.Value == KeyState.Down)
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Down;
                        }
                        else
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Released;
                        }
                        break;
                    case GameButtonState.Released:
                        if (keyPair.Value == KeyState.Down)
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Pressed;
                        }
                        else
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Up;
                        }
                        break;
                    case GameButtonState.Down:
                        if (keyPair.Value == KeyState.Down)
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Down;
                        }
                        else
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Released;
                        }
                        break;
                    case GameButtonState.Up:
                        if (keyPair.Value == KeyState.Down)
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Pressed;
                        }
                        else
                        {
                            keyboardStateButtons[keyPair.Key] = GameButtonState.Up;
                        }
                        break;
                }
            }

            #endregion

            #region Gamepad Update

            if (currentGamePad.IsConnected)
            {
                if (currentGamePad.IsButtonDown(Buttons.LeftShoulder) || currentGamePad.IsButtonDown(Buttons.LeftTrigger))
                {
                    switch (leftGamepadButton)
                    {
                        case GameButtonState.Pressed:
                            leftGamepadButton = GameButtonState.Down;
                            break;
                        case GameButtonState.Released:
                            leftGamepadButton = GameButtonState.Pressed;
                            break;
                        case GameButtonState.Down:
                            leftGamepadButton = GameButtonState.Down;
                            break;
                        case GameButtonState.Up:
                            leftGamepadButton = GameButtonState.Pressed;
                            break;
                    }
                }
                else
                {
                    switch (leftGamepadButton)
                    {
                        case GameButtonState.Pressed:
                            leftGamepadButton = GameButtonState.Released;
                            break;
                        case GameButtonState.Released:
                            leftGamepadButton = GameButtonState.Up;
                            break;
                        case GameButtonState.Down:
                            leftGamepadButton = GameButtonState.Released;
                            break;
                        case GameButtonState.Up:
                            leftGamepadButton = GameButtonState.Up;
                            break;
                    }
                }

                if (currentGamePad.IsButtonDown(Buttons.RightShoulder) || currentGamePad.IsButtonDown(Buttons.RightTrigger))
                {
                    switch (rightGamepadButton)
                    {
                        case GameButtonState.Pressed:
                            rightGamepadButton = GameButtonState.Down;
                            break;
                        case GameButtonState.Released:
                            rightGamepadButton = GameButtonState.Pressed;
                            break;
                        case GameButtonState.Down:
                            rightGamepadButton = GameButtonState.Down;
                            break;
                        case GameButtonState.Up:
                            rightGamepadButton = GameButtonState.Pressed;
                            break;
                    }
                }
                else
                {
                    switch (rightGamepadButton)
                    {
                        case GameButtonState.Pressed:
                            rightGamepadButton = GameButtonState.Released;
                            break;
                        case GameButtonState.Released:
                            rightGamepadButton = GameButtonState.Up;
                            break;
                        case GameButtonState.Down:
                            rightGamepadButton = GameButtonState.Released;
                            break;
                        case GameButtonState.Up:
                            rightGamepadButton = GameButtonState.Up;
                            break;
                    }
                }
            }

            #endregion
        }