private static ConvertToButtons ( SharpDX buttonFlags, short leftThumbX, short leftThumbY, short rightThumbX, short rightThumbY, byte leftTrigger, byte rightTrigger ) : Microsoft.Xna.Framework.Input.GamePadButtons | ||
buttonFlags | SharpDX | |
leftThumbX | short | |
leftThumbY | short | |
rightThumbX | short | |
rightThumbY | short | |
leftTrigger | byte | |
rightTrigger | byte | |
Résultat | Microsoft.Xna.Framework.Input.GamePadButtons |
private static GamePadButtons ConvertToButtons(SharpDX.XInput.GamepadButtonFlags buttonFlags,
short leftThumbX, short leftThumbY,
short rightThumbX, short rightThumbY,
byte leftTrigger,
byte rightTrigger)
{
var ret = (Buttons)0;
ret |= AddButtonIfPressed(buttonFlags, GBF.A, Buttons.A);
ret |= AddButtonIfPressed(buttonFlags, GBF.B, Buttons.B);
ret |= AddButtonIfPressed(buttonFlags, GBF.Back, Buttons.Back);
ret |= AddButtonIfPressed(buttonFlags, GBF.DPadDown, Buttons.DPadDown);
ret |= AddButtonIfPressed(buttonFlags, GBF.DPadLeft, Buttons.DPadLeft);
ret |= AddButtonIfPressed(buttonFlags, GBF.DPadRight, Buttons.DPadRight);
ret |= AddButtonIfPressed(buttonFlags, GBF.DPadUp, Buttons.DPadUp);
ret |= AddButtonIfPressed(buttonFlags, GBF.LeftShoulder, Buttons.LeftShoulder);
ret |= AddButtonIfPressed(buttonFlags, GBF.RightShoulder, Buttons.RightShoulder);
ret |= AddButtonIfPressed(buttonFlags, GBF.LeftThumb, Buttons.LeftStick);
ret |= AddButtonIfPressed(buttonFlags, GBF.RightThumb, Buttons.RightStick);
ret |= AddButtonIfPressed(buttonFlags, GBF.Start, Buttons.Start);
ret |= AddButtonIfPressed(buttonFlags, GBF.X, Buttons.X);
ret |= AddButtonIfPressed(buttonFlags, GBF.Y, Buttons.Y);
ret |= AddThumbstickButtons(leftThumbX, leftThumbY,
SharpDX.XInput.Gamepad.LeftThumbDeadZone,
Buttons.LeftThumbstickLeft,
Buttons.LeftThumbstickRight,
Buttons.LeftThumbstickUp,
Buttons.LeftThumbstickDown);
ret |= AddThumbstickButtons(rightThumbX, rightThumbY,
SharpDX.XInput.Gamepad.RightThumbDeadZone,
Buttons.RightThumbstickLeft,
Buttons.RightThumbstickRight,
Buttons.RightThumbstickUp,
Buttons.RightThumbstickDown);
if (leftTrigger >= SharpDX.XInput.Gamepad.TriggerThreshold)
ret |= Buttons.LeftTrigger;
if (rightTrigger >= SharpDX.XInput.Gamepad.TriggerThreshold)
ret |= Buttons.RightTrigger;
// Check for the hardware back button.
if (Back)
ret |= Buttons.Back;
return new GamePadButtons(ret);
}
public static GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode = GamePadDeadZone.IndependentAxes) { Controller controller = GamePad.GetController(playerIndex); if (!controller.IsConnected) { return(new GamePadState()); } Gamepad gamepad = controller.GetState().Gamepad; GamePadThumbSticks gamePadThumbSticks1 = new GamePadThumbSticks(GamePad.ConvertThumbStick(gamepad.LeftThumbX, gamepad.LeftThumbY, (short)7849, deadZoneMode), GamePad.ConvertThumbStick(gamepad.RightThumbX, gamepad.RightThumbY, (short)8689, deadZoneMode)); GamePadTriggers gamePadTriggers1 = new GamePadTriggers((float)gamepad.LeftTrigger / (float)byte.MaxValue, (float)gamepad.RightTrigger / (float)byte.MaxValue); GamePadState gamePadState; // ISSUE: explicit reference operation // ISSUE: variable of a reference type GamePadState& local = @gamePadState; GamePadThumbSticks gamePadThumbSticks2 = gamePadThumbSticks1; GamePadTriggers gamePadTriggers2 = gamePadTriggers1; GamePadButtons gamePadButtons = GamePad.ConvertToButtons(gamepad.Buttons, gamepad.LeftThumbX, gamepad.LeftThumbY, gamepad.RightThumbX, gamepad.RightThumbY, gamepad.LeftTrigger, gamepad.RightTrigger); GamePadDPad gamePadDpad = GamePad.ConvertToGamePadDPad(gamepad.Buttons); GamePadThumbSticks thumbSticks = gamePadThumbSticks2; GamePadTriggers triggers = gamePadTriggers2; GamePadButtons buttons = gamePadButtons; GamePadDPad dPad = gamePadDpad;