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); } }
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); } }