public void Commit(ulong updateTick, float deltaTime) { int controlCount = Controls.Length; for (int i = 0; i < controlCount; i++) { var control = Controls[i]; if (control != null) { control.Commit(); if (control.HasChanged) { LastChangeTick = updateTick; } } } if (IsKnown) { GetControl(InputControlType.Command).CommitWithState(AnyCommandControlIsPressed(), updateTick, deltaTime); } LeftStickX.CommitWithSides(LeftStickLeft, LeftStickRight, updateTick, deltaTime); LeftStickY.CommitWithSides(LeftStickDown, LeftStickUp, updateTick, deltaTime, InputManager.InvertYAxis); LeftStick.UpdateWithAxes(LeftStickX, LeftStickY, updateTick, deltaTime); RightStickX.CommitWithSides(RightStickLeft, RightStickRight, updateTick, deltaTime); RightStickY.CommitWithSides(RightStickDown, RightStickUp, updateTick, deltaTime, InputManager.InvertYAxis); RightStick.UpdateWithAxes(RightStickX, RightStickY, updateTick, deltaTime); DPadX.CommitWithSides(DPadLeft, DPadRight, updateTick, deltaTime); DPadY.CommitWithSides(DPadDown, DPadUp, updateTick, deltaTime, InputManager.InvertYAxis); DPad.UpdateWithAxes(DPadX, DPadY, updateTick, deltaTime); }
void ProcessLeftStick(ulong updateTick, float deltaTime) { var x = Utility.ValueFromSides(LeftStickLeft.NextRawValue, LeftStickRight.NextRawValue); var y = Utility.ValueFromSides(LeftStickDown.NextRawValue, LeftStickUp.NextRawValue, InputManager.InvertYAxis); Vector2 v; //if (RawSticks) //{ v = new Vector2(x, y); //} //LeftStick.Raw = true; LeftStick.UpdateWithAxes(v.x, v.y, updateTick, deltaTime); //LeftStickX.Raw = true; LeftStickX.CommitWithValue(v.x, updateTick, deltaTime); //LeftStickY.Raw = true; LeftStickY.CommitWithValue(v.y, updateTick, deltaTime); LeftStickLeft.SetValue(LeftStick.Left.Value, updateTick); LeftStickRight.SetValue(LeftStick.Right.Value, updateTick); LeftStickUp.SetValue(LeftStick.Up.Value, updateTick); LeftStickDown.SetValue(LeftStick.Down.Value, updateTick); }
public void PostUpdate(ulong updateTick, float deltaTime) { // Apply post-processing to controls. foreach (InputControl control in Controls.IgnoreNulls()) { if (control.RawValue != null) { control.UpdateWithValue(control.RawValue.Value, updateTick); } else if (control.PreValue != null) { control.UpdateWithValue(ProcessAnalogControlValue(control, deltaTime), updateTick); } control.PostUpdate(updateTick); if (control.HasChanged) { LastChangeTick = updateTick; } } // Update two-axis controls. LeftStick.Update(LeftStickX, LeftStickY, updateTick); RightStick.Update(RightStickX, RightStickY, updateTick); Vector2 dpv = DPadVector; DPad.Update(dpv.x, dpv.y, updateTick); }
public void UpdateSticks() { if (LeftStick.IsActive()) { _globalActionStick.Angle = LeftStick.Angle; _globalActionStick.Distance = LeftStick.Distance; } else if (_dpadActionStick.IsActive()) { _globalActionStick.Angle = _dpadActionStick.Angle; _globalActionStick.Distance = _dpadActionStick.Distance; } else { _globalActionStick.Distance = 0; } if (LeftStick.IsActive()) { _globalStick.Angle = LeftStick.Angle; _globalStick.Distance = LeftStick.Distance; //ADD X AND Y. } else if (_dpadStick.IsActive()) { _globalStick.Angle = _dpadStick.Angle; _globalStick.Distance = _dpadStick.Distance; } else { _globalStick.Distance = 0; } }
internal void ProcessLeftStick() { var x = Utility.ValueFromSides(LeftStickLeft.NextRawValue, LeftStickRight.NextRawValue); var y = Utility.ValueFromSides(LeftStickDown.NextRawValue, LeftStickUp.NextRawValue, InputManager.InvertYAxis); Vector2 v; if (RawSticks) { v = new Vector2(x, y); } else { var lowerDeadZone = Utility.Max(LeftStickLeft.LowerDeadZone, LeftStickRight.LowerDeadZone, LeftStickUp.LowerDeadZone, LeftStickDown.LowerDeadZone); var upperDeadZone = Utility.Min(LeftStickLeft.UpperDeadZone, LeftStickRight.UpperDeadZone, LeftStickUp.UpperDeadZone, LeftStickDown.UpperDeadZone); v = Utility.ApplyCircularDeadZone(x, y, lowerDeadZone, upperDeadZone); } LeftStick.Raw = true; LeftStick.UpdateWithAxes(v.X, v.Y); LeftStickX.Raw = true; LeftStickX.CommitWithValue(v.X); LeftStickY.Raw = true; LeftStickY.CommitWithValue(v.Y); LeftStickLeft.SetValue(LeftStick.Left.Value); LeftStickRight.SetValue(LeftStick.Right.Value); LeftStickUp.SetValue(LeftStick.Up.Value); LeftStickDown.SetValue(LeftStick.Down.Value); }
void ProcessLeftStick(ulong updateTick, float deltaTime) { var x = Utility.ValueFromSides(LeftStickLeft.NextRawValue, LeftStickRight.NextRawValue); var y = Utility.ValueFromSides(LeftStickDown.NextRawValue, LeftStickUp.NextRawValue, InputManager.InvertYAxis); Vector2 v; if (RawSticks || LeftStickLeft.Raw || LeftStickRight.Raw || LeftStickUp.Raw || LeftStickDown.Raw) { v = new Vector2(x, y); } else { var lowerDeadZone = Utility.Max(LeftStickLeft.LowerDeadZone, LeftStickRight.LowerDeadZone, LeftStickUp.LowerDeadZone, LeftStickDown.LowerDeadZone); var upperDeadZone = Utility.Min(LeftStickLeft.UpperDeadZone, LeftStickRight.UpperDeadZone, LeftStickUp.UpperDeadZone, LeftStickDown.UpperDeadZone); v = Utility.ApplyCircularDeadZone(x, y, lowerDeadZone, upperDeadZone); } LeftStick.Raw = true; LeftStick.UpdateWithAxes(v.x, v.y, updateTick, deltaTime); LeftStickX.Raw = true; LeftStickX.CommitWithValue(v.x, updateTick, deltaTime); LeftStickY.Raw = true; LeftStickY.CommitWithValue(v.y, updateTick, deltaTime); LeftStickLeft.SetValue(LeftStick.Left.Value, updateTick); LeftStickRight.SetValue(LeftStick.Right.Value, updateTick); LeftStickUp.SetValue(LeftStick.Up.Value, updateTick); LeftStickDown.SetValue(LeftStick.Down.Value, updateTick); }
public PlayerInput(int ID) : base() { player = ReInput.players.GetPlayer(ID); EventManager.Subscribe <InputActionEventData>(RewiredInputProvider.EVT_INPUT_PRESS, (input) => { if (isActive) { switch (input.actionId) { case RewiredConsts.Action.MoveHorizontal: LeftStick.SetX(input.GetAxis()); LeftStick.Press(); break; case RewiredConsts.Action.MoveVertical: LeftStick.SetY(input.GetAxis()); LeftStick.Press(); break; case RewiredConsts.Action.CameraHorizontal: RightStick.SetX(input.GetAxis()); RightStick.Press(); break; case RewiredConsts.Action.CameraVertical: RightStick.SetY(input.GetAxis()); RightStick.Press(); break; } } }); }
public void ClearInputState() { LeftStickX.ClearInputState(); LeftStickY.ClearInputState(); LeftStick.ClearInputState(); RightStickX.ClearInputState(); RightStickY.ClearInputState(); RightStick.ClearInputState(); DPadX.ClearInputState(); DPadY.ClearInputState(); DPad.ClearInputState(); var controlCount = Controls.Length; for (int i = 0; i < controlCount; i++) { var control = Controls[i]; if (control != null) { control.ClearInputState(); } } }
public ControllerXbox360(params int[] joystickId) { AddButton(Controls.A); AddButton(Controls.B); AddButton(Controls.X); AddButton(Controls.Y); AddButton(Controls.RB); AddButton(Controls.LB); AddButton(Controls.LStickClick); AddButton(Controls.RStickClick); AddButton(Controls.Start); AddButton(Controls.Back); AddButton(Controls.RT); AddButton(Controls.LT); AddButton(Controls.Up); AddButton(Controls.Down); AddButton(Controls.Left); AddButton(Controls.Right); AddAxis(Controls.LStick); AddAxis(Controls.RStick); AddAxis(Controls.DPad); AddAxis(Controls.Triggers); foreach (var joy in joystickId) { A.AddJoyButton(0, joy); B.AddJoyButton(1, joy); X.AddJoyButton(2, joy); Y.AddJoyButton(3, joy); LB.AddJoyButton(4, joy); RB.AddJoyButton(5, joy); Back.AddJoyButton(6, joy); Start.AddJoyButton(7, joy); LeftStickClick.AddJoyButton(8, joy); RightStickClick.AddJoyButton(9, joy); RT.AddAxisButton(AxisButton.ZMinus, joy); LT.AddAxisButton(AxisButton.ZPlus, joy); LeftStick.AddJoyAxis(JoyAxis.X, JoyAxis.Y, joy); RightStick.AddJoyAxis(JoyAxis.U, JoyAxis.R, joy); DPad.AddJoyAxis(JoyAxis.PovX, JoyAxis.PovY, joy); Triggers.AddJoyAxis(JoyAxis.Z, JoyAxis.Z, joy); Up .AddAxisButton(AxisButton.YMinus, joy) .AddAxisButton(AxisButton.PovYMinus, joy); Down .AddAxisButton(AxisButton.YPlus, joy) .AddAxisButton(AxisButton.PovYPlus, joy); Right .AddAxisButton(AxisButton.XPlus, joy) .AddAxisButton(AxisButton.PovXPlus, joy); Left .AddAxisButton(AxisButton.XMinus, joy) .AddAxisButton(AxisButton.PovXMinus, joy); } }
public void Update(float delta) { if (!controllerInitted) { return; } RightStick.Update(); LeftStick.Update(); }
public void ClearInputState() { LeftStick.ClearInputState(); RightStick.ClearInputState(); DPad.ClearInputState(); int count = Controls.Count; for (int i = 0; i < count; i++) { Controls[i]?.ClearInputState(); } }
void Awake() { ButtonA = GetComponentInChildren <AttackButton>(); StickL = GetComponentInChildren <LeftStick>(); I_PlayerData = PlayerData.Instance; FocusBtns = GameObject.Find("FocusBtns"); ScoreText = transform.Find("ScoreTxt").GetComponent <Text>(); MaxText = transform.Find("MaxScoreTxt").GetComponent <Text>(); DifficultyText = transform.Find("DifficultyTxt").GetComponent <Text>(); ResultPanel = transform.Find("ResultPanel"); DifficultyPanel = transform.Find("DifficultyPanel"); //audioInactive = GetComponent<AudioSource>(); }
public void Update(float delta) { GameController.Update(delta); PcController.Update(delta); PcAltController.Update(delta); RightStick.Update(); LeftStick.Update(); //Updating Dpad to use it's joystick emulator _actionDPad.Update(delta); //Updating KeyboardOnlyDpad to use it's joystick emulator _keyboardDPad.Update(delta); UpdateSticks(); }
public void ClearInputState() { LeftStick.ClearInputState(); RightStick.ClearInputState(); DPad.ClearInputState(); var controlsCount = Controls.Count; for (var i = 0; i < controlsCount; i++) { var control = Controls[i]; if (control != null) { control.ClearInputState(); } } }
public ControllerPS3(params int[] joystickId) { AddButton(Controls.Triangle); AddButton(Controls.Circle); AddButton(Controls.Cross); AddButton(Controls.Square); AddButton(Controls.R1); AddButton(Controls.L1); AddButton(Controls.L3); AddButton(Controls.R3); AddButton(Controls.Start); AddButton(Controls.Select); AddButton(Controls.R2); AddButton(Controls.L2); AddAxis(Controls.LStick); AddAxis(Controls.RStick); AddAxis(Controls.DPad); foreach (var joy in joystickId) { Triangle.AddJoyButton(0, joy); Circle.AddJoyButton(1, joy); Cross.AddJoyButton(2, joy); Square.AddJoyButton(3, joy); L2.AddJoyButton(4, joy); R2.AddJoyButton(5, joy); L1.AddJoyButton(6, joy); R1.AddJoyButton(7, joy); Select.AddJoyButton(8, joy); Start.AddJoyButton(9, joy); L3.AddJoyButton(10, joy); R3.AddJoyButton(11, joy); R2.AddAxisButton(AxisButton.ZMinus, joy); L2.AddAxisButton(AxisButton.ZPlus, joy); LeftStick.AddJoyAxis(JoyAxis.X, JoyAxis.Y, joy); RightStick.AddJoyAxis(JoyAxis.U, JoyAxis.R, joy); DPad.AddJoyAxis(JoyAxis.PovX, JoyAxis.PovY, joy); } }
public void PostUpdate(ulong updateTick, float deltaTime) { // Apply post-processing to controls. int controlCount = Controls.GetLength(0); for (int i = 0; i < controlCount; i++) { var control = Controls[i]; if (control != null) { if (control.RawValue.HasValue) { control.UpdateWithValue(control.RawValue.Value, updateTick); } else if (control.PreValue.HasValue) { control.UpdateWithValue(ProcessAnalogControlValue(control, deltaTime), updateTick); } control.PostUpdate(updateTick); if (control.HasChanged) { LastChangeTick = updateTick; } } } // Update two-axis controls. LeftStick.Update(LeftStickX, LeftStickY, updateTick); RightStick.Update(RightStickX, RightStickY, updateTick); var dpv = DPadVector; DPad.Update(dpv.x, dpv.y, updateTick); }
public virtual void Update(float elapsed) { sinceCheckedConnected += elapsed; if (sinceCheckedConnected >= ConnectedCheckFrequency) { sinceCheckedConnected -= ConnectedCheckFrequency; Connected = GamePad.GetState(PlayerIndex).IsConnected; } if (!Connected) { return; } GamePadState gamepadState; try { gamepadState = GamePad.GetState(PlayerIndex, GamePadDeadZone.None); } catch { return; } // Vibration if (leftMotor.Active) { leftMotor = UpdateMotor(leftMotor, elapsed); } if (rightMotor.Active) { rightMotor = UpdateMotor(rightMotor, elapsed); } if (leftMotor.LastAmount != leftMotor.CurrentAmount || rightMotor.LastAmount != rightMotor.CurrentAmount) { GamePad.SetVibration(PlayerIndex, leftMotor.CurrentAmount, rightMotor.CurrentAmount); } // Shoulders LeftShoulder = LeftShoulder.NextState(gamepadState.Buttons.LeftShoulder == ButtonState.Pressed, elapsed); RightShoulder = RightShoulder.NextState(gamepadState.Buttons.RightShoulder == ButtonState.Pressed, elapsed); // Triggers LeftTrigger = LeftTrigger.NextState(gamepadState.Triggers.Left, elapsed); RightTrigger = RightTrigger.NextState(gamepadState.Triggers.Right, elapsed); // Buttons Start = Start.NextState(gamepadState.Buttons.Start == ButtonState.Pressed); Back = Back.NextState(gamepadState.Buttons.Back == ButtonState.Pressed); A = A.NextState(gamepadState.Buttons.A == ButtonState.Pressed, elapsed); B = B.NextState(gamepadState.Buttons.B == ButtonState.Pressed, elapsed); X = X.NextState(gamepadState.Buttons.X == ButtonState.Pressed, elapsed); Y = Y.NextState(gamepadState.Buttons.Y == ButtonState.Pressed, elapsed); // D-Pad DPad = DPad.NextState(gamepadState.DPad.Up == ButtonState.Pressed, gamepadState.DPad.Down == ButtonState.Pressed, gamepadState.DPad.Left == ButtonState.Pressed, gamepadState.DPad.Right == ButtonState.Pressed, elapsed); // Deadzone that shit const float DeadZone = 0.2f; var left = new Vector2(gamepadState.ThumbSticks.Left.X, gamepadState.ThumbSticks.Left.Y); var right = new Vector2(gamepadState.ThumbSticks.Right.X, gamepadState.ThumbSticks.Right.Y); if (Math.Abs(left.x) < DeadZone) { left.x = 0; } else { left.x = (left.x - DeadZone * Math.Sign(left.x)) / (1 - DeadZone); } if (Math.Abs(left.y) < DeadZone) { left.y = 0; } else { left.y = (left.y - DeadZone * Math.Sign(left.y)) / (1 - DeadZone); } if (Math.Abs(right.x) < DeadZone) { right.x = 0; } else { right.x = (right.x - DeadZone * Math.Sign(right.x)) / (1 - DeadZone); } if (Math.Abs(right.y) < DeadZone) { right.y = 0; } else { right.y = (right.y - DeadZone * Math.Sign(right.y)) / (1 - DeadZone); } // Thumbsticks LeftStick = LeftStick.NextState(left, gamepadState.Buttons.LeftStick == ButtonState.Pressed, elapsed); RightStick = LeftStick.NextState(right, gamepadState.Buttons.RightStick == ButtonState.Pressed, elapsed); }
public void Update(TimeSpan elapsed) { if (!Connected) { return; } State state = Controller.GetState(); var gamepadState = state.Gamepad; // Sadly we can't really use the packet information because everything is temporal // Even if everything stayed the same, that's valid data (elapsed time goes up, etc.) // Vibration if (leftMotor.Active) { leftMotor = UpdateMotor(leftMotor, elapsed); } if (rightMotor.Active) { rightMotor = UpdateMotor(rightMotor, elapsed); } if (leftMotor.LastAmount != leftMotor.CurrentAmount || rightMotor.LastAmount != rightMotor.CurrentAmount) { Controller.SetVibration(new Vibration { LeftMotorSpeed = (ushort)(leftMotor.CurrentAmount * ushort.MaxValue), RightMotorSpeed = (ushort)(rightMotor.CurrentAmount * ushort.MaxValue) }); } // Shoulders LeftShoulder = LeftShoulder.NextState((gamepadState.Buttons & GamepadButtonFlags.LeftShoulder) != 0, elapsed); RightShoulder = RightShoulder.NextState((gamepadState.Buttons & GamepadButtonFlags.RightShoulder) != 0, elapsed); // Triggers LeftTrigger = LeftTrigger.NextState(gamepadState.LeftTrigger / (float)byte.MaxValue, elapsed); RightTrigger = RightTrigger.NextState(gamepadState.RightTrigger / (float)byte.MaxValue, elapsed); // Buttons Start = Start.NextState((gamepadState.Buttons & GamepadButtonFlags.Start) != 0); Back = Back.NextState((gamepadState.Buttons & GamepadButtonFlags.Back) != 0); A = A.NextState((gamepadState.Buttons & GamepadButtonFlags.A) != 0, elapsed); B = B.NextState((gamepadState.Buttons & GamepadButtonFlags.B) != 0, elapsed); X = X.NextState((gamepadState.Buttons & GamepadButtonFlags.X) != 0, elapsed); Y = Y.NextState((gamepadState.Buttons & GamepadButtonFlags.Y) != 0, elapsed); // D-Pad DPad = DPad.NextState((gamepadState.Buttons & GamepadButtonFlags.DPadUp) != 0, (gamepadState.Buttons & GamepadButtonFlags.DPadDown) != 0, (gamepadState.Buttons & GamepadButtonFlags.DPadLeft) != 0, (gamepadState.Buttons & GamepadButtonFlags.DPadRight) != 0, elapsed); // Thumb sticks LeftStick = LeftStick.NextState( Normalize(gamepadState.LeftThumbX, gamepadState.LeftThumbY, Gamepad.GamepadLeftThumbDeadZone), (gamepadState.Buttons & GamepadButtonFlags.LeftThumb) != 0, elapsed); RightStick = RightStick.NextState( Normalize(gamepadState.RightThumbX, gamepadState.RightThumbY, Gamepad.GamepadRightThumbDeadZone), (gamepadState.Buttons & GamepadButtonFlags.RightThumb) != 0, elapsed); }
void Awake() { StickL = GetComponentInChildren <LeftStick>(); }
public virtual void Update(float elapsed) { sinceCheckedConnected += elapsed; if (sinceCheckedConnected >= ConnectedCheckFrequency) { sinceCheckedConnected -= ConnectedCheckFrequency; if (Application.platform.IsOSX()) { Connected = Input.GetJoystickNames().Length > (int)playerIndex; } else if (Application.platform.IsWindows()) { Connected = GamePad.GetState(PlayerIndex).IsConnected; } } if (!Connected) { return; } // XInput.NET if (Application.platform.IsWindows()) { GamePadState gamepadState; try { gamepadState = GamePad.GetState(PlayerIndex, GamePadDeadZone.None); } catch { return; } // Vibration if (leftMotor.Active) { leftMotor = UpdateMotor(leftMotor, elapsed); } if (rightMotor.Active) { rightMotor = UpdateMotor(rightMotor, elapsed); } if (leftMotor.LastAmount != leftMotor.CurrentAmount || rightMotor.LastAmount != rightMotor.CurrentAmount) { GamePad.SetVibration(PlayerIndex, leftMotor.CurrentAmount, rightMotor.CurrentAmount); } // Shoulders LeftShoulder = LeftShoulder.NextState(gamepadState.Buttons.LeftShoulder == ButtonState.Pressed, elapsed); RightShoulder = RightShoulder.NextState(gamepadState.Buttons.RightShoulder == ButtonState.Pressed, elapsed); // Triggers LeftTrigger = LeftTrigger.NextState(gamepadState.Triggers.Left, elapsed); RightTrigger = RightTrigger.NextState(gamepadState.Triggers.Right, elapsed); // Buttons Start = Start.NextState(gamepadState.Buttons.Start == ButtonState.Pressed, elapsed); Back = Back.NextState(gamepadState.Buttons.Back == ButtonState.Pressed, elapsed); A = A.NextState(gamepadState.Buttons.A == ButtonState.Pressed, elapsed); B = B.NextState(gamepadState.Buttons.B == ButtonState.Pressed, elapsed); X = X.NextState(gamepadState.Buttons.X == ButtonState.Pressed, elapsed); Y = Y.NextState(gamepadState.Buttons.Y == ButtonState.Pressed, elapsed); // D-Pad DPad = DPad.NextState(gamepadState.DPad.Up == ButtonState.Pressed, gamepadState.DPad.Down == ButtonState.Pressed, gamepadState.DPad.Left == ButtonState.Pressed, gamepadState.DPad.Right == ButtonState.Pressed, elapsed); // Deadzone that shit const float DeadZone = 0.1f; var left = new Vector2(gamepadState.ThumbSticks.Left.X, gamepadState.ThumbSticks.Left.Y); var right = new Vector2(gamepadState.ThumbSticks.Right.X, gamepadState.ThumbSticks.Right.Y); if (Math.Abs(left.x) < DeadZone) { left.x = 0; } else { left.x = (left.x - DeadZone * Math.Sign(left.x)) / (1 - DeadZone); } if (Math.Abs(left.y) < DeadZone) { left.y = 0; } else { left.y = (left.y - DeadZone * Math.Sign(left.y)) / (1 - DeadZone); } if (Math.Abs(right.x) < DeadZone) { right.x = 0; } else { right.x = (right.x - DeadZone * Math.Sign(right.x)) / (1 - DeadZone); } if (Math.Abs(right.y) < DeadZone) { right.y = 0; } else { right.y = (right.y - DeadZone * Math.Sign(right.y)) / (1 - DeadZone); } // Thumbsticks LeftStick = LeftStick.NextState(left, gamepadState.Buttons.LeftStick == ButtonState.Pressed, elapsed); RightStick = LeftStick.NextState(right, gamepadState.Buttons.RightStick == ButtonState.Pressed, elapsed); } // Tattiebogle if (Application.platform.IsOSX()) { string playerPrefix = "Player" + ((int)PlayerIndex + 1); // Shoulders LeftShoulder = LeftShoulder.NextState(Input.GetButton(playerPrefix + " LeftShoulder"), elapsed); RightShoulder = RightShoulder.NextState(Input.GetButton(playerPrefix + " RightShoulder"), elapsed); // Triggers LeftTrigger = LeftTrigger.NextState(Input.GetAxisRaw(playerPrefix + " LeftTrigger"), elapsed); RightTrigger = RightTrigger.NextState(Input.GetAxisRaw(playerPrefix + " RightTrigger"), elapsed); // Buttons Start = Start.NextState(Input.GetButton(playerPrefix + " Start"), elapsed); Back = Back.NextState(Input.GetButton(playerPrefix + " Back"), elapsed); A = A.NextState(Input.GetButton(playerPrefix + " A"), elapsed); B = B.NextState(Input.GetButton(playerPrefix + " B"), elapsed); X = X.NextState(Input.GetButton(playerPrefix + " X"), elapsed); Y = Y.NextState(Input.GetButton(playerPrefix + " Y"), elapsed); // D-Pad DPad = DPad.NextState(Input.GetButton(playerPrefix + " DPadUp"), Input.GetButton(playerPrefix + " DPadDown"), Input.GetButton(playerPrefix + " DPadLeft"), Input.GetButton(playerPrefix + " DPadRight"), elapsed); // Deadzone that shit const float DeadZone = 0.1f; var left = new Vector2(Input.GetAxisRaw(playerPrefix + " LeftStick X"), Input.GetAxisRaw(playerPrefix + " LeftStick Y") * -1); var right = new Vector2(Input.GetAxisRaw(playerPrefix + " RightStick X"), Input.GetAxisRaw(playerPrefix + " RightStick Y") * -1); if (Math.Abs(left.x) < DeadZone) { left.x = 0; } else { left.x = (left.x - DeadZone * Math.Sign(left.x)) / (1 - DeadZone); } if (Math.Abs(left.y) < DeadZone) { left.y = 0; } else { left.y = (left.y - DeadZone * Math.Sign(left.y)) / (1 - DeadZone); } if (Math.Abs(right.x) < DeadZone) { right.x = 0; } else { right.x = (right.x - DeadZone * Math.Sign(right.x)) / (1 - DeadZone); } if (Math.Abs(right.y) < DeadZone) { right.y = 0; } else { right.y = (right.y - DeadZone * Math.Sign(right.y)) / (1 - DeadZone); } // Thumbsticks LeftStick = LeftStick.NextState(left, Input.GetButton(playerPrefix + " LeftStick Press"), elapsed); RightStick = LeftStick.NextState(right, Input.GetButton(playerPrefix + " RightStick Press"), elapsed); } }
public void PressLeftStick(float x, float y) { LeftStick.SetX(x); LeftStick.SetY(y); LeftStick.Press(); }