Пример #1
0
        public static void Update(Camera2D cam)
        {
            lastKeyboardState = keyboardState;
            lastMouseState    = mouseState;
            lastGamePadState  = gamePadState;

            keyboardState = Keyboard.GetState();
            mouseState    = Mouse.GetState();
            gamePadState  = GamePad.GetState(getPlayerIndex());

            // Check for swap between gamepad and KBM
            checkControlType();

            camera = cam;

            // Attack
            if (IsUsingGamePad)
            {
                if (RightThumbstick.LengthSquared() > ThumbStickDeadZone * ThumbStickDeadZone)
                {
                    Attack = true;
                }
                else
                {
                    Attack = false;
                }
            }
            else
            {
                if (mouseState.LeftButton == ButtonState.Pressed)
                {
                    Attack = true;
                }
                else
                {
                    Attack = false;
                }
            }

            // Pause
            if (IsUsingGamePad)
            {
                if (gamePadState.IsButtonDown(Buttons.Start) && !lastGamePadState.IsButtonDown(Buttons.Start))
                {
                    Pause = !Pause;
                }
            }
            else
            {
                if (keyboardState.IsKeyDown(Keys.Escape) && !lastKeyboardState.IsKeyDown(Keys.Escape))
                {
                    Pause = !Pause;
                }
            }
        }
Пример #2
0
        /// <summary>
        /// The fast poll method to readout the button states, trigger positions, thumb stick states and positions.
        /// </summary>
        private void FastPoll()
        {
            if (!controller.IsConnected)
            {
                return;
            }

            var gamepad = controller.GetState().Gamepad;

            A.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.A);
            B.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.B);
            X.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.X);
            Y.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.Y);

            LeftShoulder.Value  = gamepad.Buttons.HasFlag(GamepadButtonFlags.LeftShoulder);
            RightShoulder.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.RightShoulder);

            Start.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.Start);
            Back.Value  = gamepad.Buttons.HasFlag(GamepadButtonFlags.Back);

            Up.Value    = gamepad.Buttons.HasFlag(GamepadButtonFlags.DPadUp);
            Down.Value  = gamepad.Buttons.HasFlag(GamepadButtonFlags.DPadDown);
            Left.Value  = gamepad.Buttons.HasFlag(GamepadButtonFlags.DPadLeft);
            Right.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.DPadRight);

            LeftThumbclick.Value  = gamepad.Buttons.HasFlag(GamepadButtonFlags.LeftThumb);
            RightThumbclick.Value = gamepad.Buttons.HasFlag(GamepadButtonFlags.RightThumb);

            LeftTrigger.Value  = gamepad.LeftTrigger.RemapF(byte.MinValue, byte.MaxValue, MinTrigger, MaxTrigger);
            RightTrigger.Value = gamepad.RightTrigger.RemapF(byte.MinValue, byte.MaxValue, MinTrigger, MaxTrigger);

            LeftThumbstick.SetValue(gamepad.LeftThumbX.RemapF(short.MinValue, short.MaxValue, MinThumb, MaxThumb),
                                    gamepad.LeftThumbY.RemapF(short.MinValue, short.MaxValue, MinThumb, MaxThumb));


            RightThumbstick.SetValue(gamepad.RightThumbX.RemapF(short.MinValue, short.MaxValue, MinThumb, MaxThumb),
                                     gamepad.RightThumbY.RemapF(short.MinValue, short.MaxValue, MinThumb, MaxThumb));
        }