Exemplo n.º 1
0
 public static float GetJoystickAngle(OuyaJoystick joystick, OuyaPlayer player)
 {
     /* returns the angle of a joystick
      * This is a convenience method allowing to get the joystick input and
      * calculate the angle at the same call
      * angles start at the positive joystick-x-axis and then increase conterclockwise
      * (x-positive-axis is 0° / y-positive axis is 90° / x-negative axis is 180° / y-negative-axis is 270°)
      * no joystrick input leads to return of -1 (as 0 is a real value used for the x-positive input)
      */
     return CalculateJoystickAngle(GetJoystick(joystick, player));
 }
Exemplo n.º 2
0
 public static Vector2 GetJoystick(OuyaJoystick joystick, OuyaPlayer player)
 {
     /* allows to easily get the input of a joystick
      * the input will already be checked by a preset deadzone
      */
     switch (joystick)
     {
         case OuyaJoystick.LeftStick:
             switch (deadzoneType)
             {
                 case DeadzoneType.AxialClip:
                     return CheckDeadzoneAxial(GetAxis(OuyaAxis.LX, player), GetAxis(OuyaAxis.LY, player), deadzoneRadius);
                 case DeadzoneType.CircularClip:
                     return CheckDeadzoneCircular(GetAxis(OuyaAxis.LX, player), GetAxis(OuyaAxis.LY, player), deadzoneRadius);
                 case DeadzoneType.CircularMap:
                     return CheckDeadzoneRescaled(GetAxis(OuyaAxis.LX, player), GetAxis(OuyaAxis.LY, player), deadzoneRadius);
                 default:
                     return Vector2.zero;
             }
         case OuyaJoystick.RightStick:
             switch (deadzoneType)
             {
                 case DeadzoneType.AxialClip:
                     return CheckDeadzoneAxial(GetAxis(OuyaAxis.RX, player), GetAxis(OuyaAxis.RY, player), deadzoneRadius);
                 case DeadzoneType.CircularClip:
                     return CheckDeadzoneCircular(GetAxis(OuyaAxis.RX, player), GetAxis(OuyaAxis.RY, player), deadzoneRadius);
                 case DeadzoneType.CircularMap:
                     return CheckDeadzoneRescaled(GetAxis(OuyaAxis.RX, player), GetAxis(OuyaAxis.RY, player), deadzoneRadius);
                 default:
                     return Vector2.zero;
             }
         case OuyaJoystick.DPad:
             switch (deadzoneType)
             {
                 case DeadzoneType.AxialClip:
                     return CheckDeadzoneAxial(GetAxis(OuyaAxis.DX, player), GetAxis(OuyaAxis.DY, player), deadzoneRadius);
                 case DeadzoneType.CircularClip:
                     return CheckDeadzoneCircular(GetAxis(OuyaAxis.DX, player), GetAxis(OuyaAxis.DY, player), deadzoneRadius);
                 case DeadzoneType.CircularMap:
                     Vector2 dpadInput = CheckDeadzoneRescaled(GetAxis(OuyaAxis.DX, player), GetAxis(OuyaAxis.DY, player), deadzoneRadius);
                     if (dpadInput.x > 1f) dpadInput.x = 1; else if (dpadInput.x < -1) dpadInput.x = -1;
                     if (dpadInput.y > 1f) dpadInput.y = 1; else if (dpadInput.y < -1) dpadInput.y = -1;
                     return dpadInput;
                 default:
                     return Vector2.zero;
             }
         default:
             return Vector2.zero;
     }
 }