示例#1
0
    /// <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);
    }
示例#2
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);
    }
示例#3
0
 public float GetAxis(e_XBoxControllerAxis axis)
 {
     return(GetAxisState(axis));
 }