コード例 #1
0
        private bool IsPressed(GamePadState GpState, ControllerInputID Button)
        {
            switch (Button)
            {
            case ControllerInputID.A:         return(GpState.Buttons.A == ButtonState.Pressed);

            case ControllerInputID.B:         return(GpState.Buttons.B == ButtonState.Pressed);

            case ControllerInputID.X:         return(GpState.Buttons.X == ButtonState.Pressed);

            case ControllerInputID.Y:         return(GpState.Buttons.Y == ButtonState.Pressed);

            case ControllerInputID.LStick:    return(GpState.Buttons.LeftStick == ButtonState.Pressed);

            case ControllerInputID.RStick:    return(GpState.Buttons.RightStick == ButtonState.Pressed);

            case ControllerInputID.LShoulder: return(GpState.Buttons.LeftShoulder == ButtonState.Pressed);

            case ControllerInputID.RShoulder: return(GpState.Buttons.RightShoulder == ButtonState.Pressed);

            case ControllerInputID.DPadUp:    return(GpState.DPad.Up == ButtonState.Pressed);

            case ControllerInputID.DPadDown:  return(GpState.DPad.Down == ButtonState.Pressed);

            case ControllerInputID.DPadLeft:  return(GpState.DPad.Left == ButtonState.Pressed);

            case ControllerInputID.DPadRight: return(GpState.DPad.Right == ButtonState.Pressed);

            case ControllerInputID.Start:     return(GpState.Buttons.Start == ButtonState.Pressed);

            case ControllerInputID.Back:      return(GpState.Buttons.Back == ButtonState.Pressed);

            case ControllerInputID.LTrigger: return(GpState.Triggers.Left >= TriggerThreshold);

            case ControllerInputID.RTrigger: return(GpState.Triggers.Right >= TriggerThreshold);

            //Using thumbsticks as buttons is not common, but it would be nice not to ignore them
            case ControllerInputID.LJoystick:
                return(GpState.ThumbSticks.Left.X >= Deadzone ||
                       GpState.ThumbSticks.Left.Y >= Deadzone);

            case ControllerInputID.RJoystick:
                return(GpState.ThumbSticks.Right.X >= Deadzone ||
                       GpState.ThumbSticks.Right.Y >= Deadzone);

            default:
                return(false);
            }
        }
コード例 #2
0
        private (short, short) GetStick(ControllerInputID Joystick)
        {
            GamePadState GpState = GamePad.GetState(Index);

            switch (Joystick)
            {
            case ControllerInputID.LJoystick:
                return(ApplyDeadzone(GpState.ThumbSticks.Left));

            case ControllerInputID.RJoystick:
                return(ApplyDeadzone(GpState.ThumbSticks.Right));

            default:
                return(0, 0);
            }
        }