/// <summary> /// the same as GetAxis, but instead of returning a value clamped in [-1;1], it only returns {-1, 0, 1} /// </summary> /// <param name="name"></param> /// <returns></returns> public int GetAxisClamped(e_XBoxControllerAxis axis) { var val = GetAxis(axis); if (val < 0) { return(-1); } else if (val > 0) { return(1); } return(0); }
private float GetAxisState(e_XBoxControllerAxis axis) { if (!state.IsConnected) { return(.0f); } if (axis == e_XBoxControllerAxis.Horizontal) { return(state.ThumbSticks.Left.X); } if (axis == e_XBoxControllerAxis.Vertical) { return(state.ThumbSticks.Left.Y); } if (axis == e_XBoxControllerAxis.HCross) { return(state.DPad.Left == ButtonState.Pressed ? -1.0f : (state.DPad.Right == ButtonState.Pressed ? 1.0f : 0.0f)); } if (axis == e_XBoxControllerAxis.VCross) { return(state.DPad.Down == ButtonState.Pressed ? -1.0f : (state.DPad.Up == ButtonState.Pressed ? 1.0f : 0.0f)); } if (axis == e_XBoxControllerAxis.HJoyStick) { return(state.ThumbSticks.Right.X); } if (axis == e_XBoxControllerAxis.VJoyStick) { return(state.ThumbSticks.Right.Y); } if (axis == e_XBoxControllerAxis.RT) { return(state.Triggers.Right); } if (axis == e_XBoxControllerAxis.LT) { return(state.Triggers.Left); } return(.0f); }
public float GetAxis(e_XBoxControllerAxis axis) { return(GetAxisState(axis)); }