public override void HandleInput(InputState input) { int playerIndex = (int)ControllingPlayer.Value; if (input.CurrentGamePadStates[playerIndex].Buttons.RightShoulder == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.RightShoulder == ButtonState.Released) { playerTriggerSensitivity += 0.33f; if (playerTriggerSensitivity > 1.0f) playerTriggerSensitivity = 0.99f; } if (input.CurrentGamePadStates[playerIndex].Buttons.LeftShoulder == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.LeftShoulder == ButtonState.Released) { playerTriggerSensitivity -= 0.33f; if (playerTriggerSensitivity < 0.0f) playerTriggerSensitivity = 0.0f; } if (input.CurrentGamePadStates[playerIndex].Buttons.B == ButtonState.Pressed) { OnCancel(); } TriggerSensitivity = playerTriggerSensitivity; UpdateSensitivity(); base.HandleInput(input); }
public override void HandleInput(InputState input) { int playerIndex = (int)ControllingPlayer.Value; if (input.CurrentGamePadStates[playerIndex].Buttons.A == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.A == ButtonState.Released && scrollScreen) { scrollScreen = false; } else if (input.CurrentGamePadStates[playerIndex].Buttons.A == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.A == ButtonState.Released && !scrollScreen) { scrollScreen = true; } else if (input.CurrentGamePadStates[playerIndex].Buttons.B == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.B == ButtonState.Released) { this.ExitScreen(); } base.HandleInput(input); }
public override void HandleInput(InputState input) { PlayerIndex playerIndex; if (input.IsMenuSelect(ControllingPlayer, out playerIndex)) { if (Accepted != null) Accepted(this, new PlayerIndexEventArgs(playerIndex)); ExitScreen(); } else if (input.IsMenuCancel(ControllingPlayer, out playerIndex)) { if (Cancelled != null) Cancelled(this, new PlayerIndexEventArgs(playerIndex)); ExitScreen(); } }
public virtual void HandleInput(InputState input) { }
public override void HandleInput(InputState input) { //if the game is active right now if (active) { for (int i = 0; i < 4; i++) { #region TriggerSensitivities if (input.CurrentGamePadStates[i].Buttons.RightShoulder == ButtonState.Pressed && input.PreviousGamePadStates[i].Buttons.RightShoulder == ButtonState.Released) { playerTriggerSensitivitys[i] += 0.33f; if (playerTriggerSensitivitys[i] > 1.0f) playerTriggerSensitivitys[i] = 0.99f; } if (input.CurrentGamePadStates[i].Buttons.LeftShoulder == ButtonState.Pressed && input.PreviousGamePadStates[i].Buttons.LeftShoulder == ButtonState.Released) { playerTriggerSensitivitys[i] -= 0.33f; if (playerTriggerSensitivitys[i] < 0.0f) playerTriggerSensitivitys[i] = 0.0f; } #endregion } UpdateInfo(input); UpdateSensitivity(); } base.HandleInput(input); }
private void UpdateInfo(InputState input) { #region Character && Gun Info Pull Up for (int i = 0; i < numberOfPlayersJoined; i++) { if (input.CurrentGamePadStates[i].Buttons.Y == ButtonState.Pressed && input.PreviousGamePadStates[i].Buttons.Y == ButtonState.Released) { ControllingPlayer = (PlayerIndex)i; active = false; ScreenManager.AddScreen(new CharacterInfoScreen(), ControllingPlayer); } if (input.CurrentGamePadStates[i].Buttons.X == ButtonState.Pressed && input.PreviousGamePadStates[i].Buttons.Y == ButtonState.Released) { ControllingPlayer = (PlayerIndex)i; active = false; ScreenManager.AddScreen(new GunInfoScreen(), ControllingPlayer); } } #endregion }
private void UpdateWeapon(InputState input, Character playerCharacter, int playerNumber) { switch (playerCharacter) { //seems fine #region Sayid Weapon Timer case Character.Sayid: //if pressed down if (input.CurrentGamePadStates[playerNumber].Triggers.Right > players[playerNumber].triggerSensitivity) { //if there is allowed for a new timer to be created if (sayidNewTimer && !sayidTimerActive) { TimerCallback tcb = SayidFireWeapon; sayidsPlayer = players[playerNumber]; sayidTimer = new Timer(tcb, autoEvent, 0, 330); sayidNewTimer = false; sayidTimerActive = true; } } //if let go if (input.CurrentGamePadStates[playerNumber].Triggers.Right <= players[playerNumber].triggerSensitivity && sayidTimerActive) { if (sayidTimer != null) { sayidTimer.Dispose(); } //allow for a new timer to be created sayidNewTimer = true; sayidTimerActive = false; } break; #endregion //seems fine #region Juan Weapon Timer case Character.Juan: if (input.CurrentGamePadStates[playerNumber].Triggers.Right > players[playerNumber].triggerSensitivity) { if (juanNewTimer && !juanTimerActive) { TimerCallback tcb = JuanFireWeapon; juansPlayer = players[playerNumber]; juanTimer = new Timer(tcb, autoEvent, 0, 1000); juanNewTimer = false; } } if (input.CurrentGamePadStates[playerNumber].Triggers.Right <= players[playerNumber].triggerSensitivity && juanTimerActive) { if (juanTimer != null) { juanTimer.Dispose(); } juanNewTimer = true; juanTimerActive = false; } break; #endregion //seems fine #region Sir Edward Weapon Timer case Character.Sir_Edward: if (input.CurrentGamePadStates[playerNumber].Triggers.Right > players[playerNumber].triggerSensitivity) { if (sir_EdwardNewTimer && !sir_EdwardTimerActive) { TimerCallback tcb = SirEdwardFireWeapon; sirEdwardsPlayer = players[playerNumber]; sir_EdwardTimer = new Timer(tcb, autoEvent, 0, 500); sir_EdwardNewTimer = false; } } if (input.CurrentGamePadStates[playerNumber].Triggers.Right <= players[playerNumber].triggerSensitivity && sir_EdwardTimerActive) { if (sir_EdwardTimer != null) { sir_EdwardTimer.Dispose(); } sir_EdwardNewTimer = true; sir_EdwardTimerActive = false; } break; #endregion //seems fine #region Wilhelm Weapon Timer case Character.Wilhelm: if (input.CurrentGamePadStates[playerNumber].Triggers.Right > players[playerNumber].triggerSensitivity) { if (wilhelmNewTimer && !wilhelmTimerActive) { TimerCallback tcb = WilhelmFireWeapon; wilhelmsPlayer = players[playerNumber]; wilhelmTimer = new Timer(tcb, autoEvent, 0, 500); wilhelmNewTimer = false; } } if (input.CurrentGamePadStates[playerNumber].Triggers.Right <= players[playerNumber].triggerSensitivity && wilhelmTimerActive) { if (wilhelmTimer != null) { wilhelmTimer.Dispose(); } wilhelmNewTimer = true; wilhelmTimerActive = false; } break; #endregion } }
/// <summary> /// This is what the player pressed while playing the game and how the game should respond to that action /// Controlling shooting, moving, and other player inputs /// </summary> /// <param name="input">what the player has inputted</param> public override void HandleInput(InputState input) { if (IsPauseMenuDone) { Active = true; } if (Active) { if (input == null) throw new ArgumentNullException("input"); //did you disconnect? #region IsPlayerControllerDisconnectedOrOutOfBatteries? int playerIndex = (int)ControllingPlayer.Value; KeyboardState keyboardState = input.CurrentKeyboardStates[playerIndex]; GamePadState gamePadState = input.CurrentGamePadStates[playerIndex]; bool gamePadDisconnected = !gamePadState.IsConnected && input.GamePadWasConnected[playerIndex]; //...if so then pause and wait if (input.IsPauseGame(ControllingPlayer) || gamePadDisconnected) { #region Bring up Pause Menu for (int i = 0; i < 4; i++) { if (ControllingPlayer == (PlayerIndex)i) { ScreenManager.AddScreen(new PauseMenuScreen(players[i].triggerSensitivity, levelCount), ControllingPlayer); } } #endregion //assign new trigger sensitivites newTriggerSensitivity = true; //...and we are not 'activly playing' Active = false; } #endregion #region New Trigger Sensitivities if (newTriggerSensitivity) { for (int i = 0; i < 4; i++) { if (ControllingPlayer == (PlayerIndex)i) { players[i].triggerSensitivity = TriggerSensitivity; break; } } //do not assign again newTriggerSensitivity = false; } #endregion int j = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); int k = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); int l = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); int m = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); switch (numberOfPlayersLeft) { #region 1 case 1: j = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); //the left stick moves the player's position in the x and y position players[j].position.X += input.CurrentGamePadStates[j].ThumbSticks.Left.X * 5.0f; players[j].position.Y += -input.CurrentGamePadStates[j].ThumbSticks.Left.Y * 5.0f; //the right stick rotates the player in the exact direction of the right stick in referece to the controller // uses my own TurnAngle method players[j].rotation = TurnAngle(input.CurrentGamePadStates[j].ThumbSticks.Right.X, input.CurrentGamePadStates[j].ThumbSticks.Right.Y, players[j].rotation); UpdateWeapon(input, players[j].playerCharacter ,j); break; #endregion #region 2 case 2: j = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); k = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); players[j].position.X += input.CurrentGamePadStates[j].ThumbSticks.Left.X * 5.0f; players[j].position.Y += -input.CurrentGamePadStates[j].ThumbSticks.Left.Y * 5.0f; players[j].rotation = TurnAngle(input.CurrentGamePadStates[j].ThumbSticks.Right.X, input.CurrentGamePadStates[j].ThumbSticks.Right.Y, players[j].rotation); players[k].position.X += input.CurrentGamePadStates[k].ThumbSticks.Left.X * 5.0f; players[k].position.Y += -input.CurrentGamePadStates[k].ThumbSticks.Left.Y * 5.0f; players[k].rotation = TurnAngle(input.CurrentGamePadStates[k].ThumbSticks.Right.X, input.CurrentGamePadStates[k].ThumbSticks.Right.Y, players[k].rotation); UpdateWeapon(input, players[j].playerCharacter, j); UpdateWeapon(input, players[k].playerCharacter, k); break; #endregion #region 3 case 3: j = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); k = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); l = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); players[j].position.X += input.CurrentGamePadStates[j].ThumbSticks.Left.X * 5.0f; players[j].position.Y += -input.CurrentGamePadStates[j].ThumbSticks.Left.Y * 5.0f; players[j].rotation = TurnAngle(input.CurrentGamePadStates[j].ThumbSticks.Right.X, input.CurrentGamePadStates[j].ThumbSticks.Right.Y, players[j].rotation); players[k].position.X += input.CurrentGamePadStates[k].ThumbSticks.Left.X * 5.0f; players[k].position.Y += -input.CurrentGamePadStates[k].ThumbSticks.Left.Y * 5.0f; players[k].rotation = TurnAngle(input.CurrentGamePadStates[k].ThumbSticks.Right.X, input.CurrentGamePadStates[k].ThumbSticks.Right.Y, players[k].rotation); players[l].position.X += input.CurrentGamePadStates[l].ThumbSticks.Left.X * 5.0f; players[l].position.Y += -input.CurrentGamePadStates[l].ThumbSticks.Left.Y * 5.0f; players[l].rotation = TurnAngle(input.CurrentGamePadStates[l].ThumbSticks.Right.X, input.CurrentGamePadStates[l].ThumbSticks.Right.Y, players[l].rotation); UpdateWeapon(input, players[j].playerCharacter, j); UpdateWeapon(input, players[k].playerCharacter, k); UpdateWeapon(input, players[l].playerCharacter, l); break; #endregion #region 4 case 4: j = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); k = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); l = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); m = GetPlayerValues(playerAlive[0], playerAlive[1], playerAlive[2], playerAlive[3]); players[j].position.X += input.CurrentGamePadStates[j].ThumbSticks.Left.X * 5.0f; players[j].position.Y += -input.CurrentGamePadStates[j].ThumbSticks.Left.Y * 5.0f; players[j].rotation = TurnAngle(input.CurrentGamePadStates[j].ThumbSticks.Right.X, input.CurrentGamePadStates[j].ThumbSticks.Right.Y, players[j].rotation); players[k].position.X += input.CurrentGamePadStates[k].ThumbSticks.Left.X * 5.0f; players[k].position.Y += -input.CurrentGamePadStates[k].ThumbSticks.Left.Y * 5.0f; players[k].rotation = TurnAngle(input.CurrentGamePadStates[k].ThumbSticks.Right.X, input.CurrentGamePadStates[k].ThumbSticks.Right.Y, players[k].rotation); players[l].position.X += input.CurrentGamePadStates[l].ThumbSticks.Left.X * 5.0f; players[l].position.Y += -input.CurrentGamePadStates[l].ThumbSticks.Left.Y * 5.0f; players[l].rotation = TurnAngle(input.CurrentGamePadStates[l].ThumbSticks.Right.X, input.CurrentGamePadStates[l].ThumbSticks.Right.Y, players[l].rotation); players[m].position.X += input.CurrentGamePadStates[m].ThumbSticks.Left.X * 5.0f; players[m].position.Y += -input.CurrentGamePadStates[m].ThumbSticks.Left.Y * 5.0f; players[m].rotation = TurnAngle(input.CurrentGamePadStates[m].ThumbSticks.Right.X, input.CurrentGamePadStates[m].ThumbSticks.Right.Y, players[m].rotation); UpdateWeapon(input, players[j].playerCharacter, j); UpdateWeapon(input, players[k].playerCharacter, k); UpdateWeapon(input, players[l].playerCharacter, l); UpdateWeapon(input, players[m].playerCharacter, m); break; #endregion } UncheckPlayers(); } }
public override void HandleInput(InputState input) { if (OnStartUp) { if (input.IsMenuUp(ControllingPlayer)) { startUpSelectedEntry--; if (startUpSelectedEntry < 0) startUpSelectedEntry = startUpMenuEntries.Count - 1; } if (input.IsMenuDown(ControllingPlayer)) { startUpSelectedEntry++; if (startUpSelectedEntry >= startUpMenuEntries.Count) startUpSelectedEntry = 0; } } else { if (input.IsMenuUp(PlayerIndex.One)) { selectedEntry--; if (selectedEntry < 0) selectedEntry = menuEntries.Count - 1; } if (input.IsMenuUp(PlayerIndex.Two)) { selectedEntry2--; if (selectedEntry2 < 0) selectedEntry2 = menuEntries2.Count - 1; } if (input.IsMenuUp(PlayerIndex.Three)) { selectedEntry3--; if (selectedEntry3 < 0) selectedEntry3 = menuEntries3.Count - 1; } if (input.IsMenuUp(PlayerIndex.Four)) { selectedEntry4--; if (selectedEntry4 < 0) selectedEntry4 = menuEntries4.Count - 1; } if (input.IsMenuDown(PlayerIndex.One)) { selectedEntry++; if (selectedEntry >= menuEntries.Count) selectedEntry = 0; } if (input.IsMenuDown(PlayerIndex.Two)) { selectedEntry2++; if (selectedEntry2 >= menuEntries2.Count) selectedEntry2 = 0; } if (input.IsMenuDown(PlayerIndex.Three)) { selectedEntry3++; if (selectedEntry3 >= menuEntries3.Count) selectedEntry3 = 0; } if (input.IsMenuDown(PlayerIndex.Four)) { selectedEntry4++; if (selectedEntry4 >= menuEntries4.Count) selectedEntry4 = 0; } } PlayerIndex playerIndex; if (OnStartUp) { if (input.IsMenuSelect(ControllingPlayer, out playerIndex)) { OnSelectEntry(startUpSelectedEntry, playerIndex); } else if (input.IsMenuCancel(ControllingPlayer, out playerIndex)) { OnCancel(playerIndex); } } else { if (input.IsMenuSelect(PlayerIndex.One, out playerIndex)) { OnSelectEntry(selectedEntry, playerIndex); } else if (input.IsMenuCancel(PlayerIndex.One, out playerIndex)) { OnCancel(playerIndex); } if (input.IsMenuSelect(PlayerIndex.Two, out playerIndex)) { OnSelectEntry(selectedEntry2, playerIndex); } else if (input.IsMenuCancel(PlayerIndex.Two, out playerIndex)) { OnCancel(playerIndex); } if (input.IsMenuSelect(PlayerIndex.Three, out playerIndex)) { OnSelectEntry(selectedEntry3, playerIndex); } else if (input.IsMenuCancel(PlayerIndex.Three, out playerIndex)) { OnCancel(playerIndex); } if (input.IsMenuSelect(PlayerIndex.Four, out playerIndex)) { OnSelectEntry(selectedEntry4, playerIndex); } else if (input.IsMenuCancel(PlayerIndex.Four, out playerIndex)) { OnCancel(playerIndex); } } }
public override void HandleInput(InputState input) { PlayerIndex playerIndex; if (input.IsMenuSelect(ControllingPlayer, out playerIndex)) { if (Accepted != null) Accepted(this, new PlayerIndexEventArgs(playerIndex)); if (returning) { LoadingScreen.Load(ScreenManager, true, playerIndex, false, new BackgroundScreen(), new MainMenuScreen()); } else if (exiting) { ScreenManager.Game.Exit(); } ExitScreen(); } else if (input.IsMenuCancel(ControllingPlayer, out playerIndex)) { if (Cancelled != null) Cancelled(this, new PlayerIndexEventArgs(playerIndex)); ExitScreen(); } }
public override void HandleInput(InputState input) { if (readyToLoad) { int playerIndex = (int)ControllingPlayer.Value; if (input.CurrentGamePadStates[playerIndex].Buttons.A == ButtonState.Pressed && input.PreviousGamePadStates[playerIndex].Buttons.A == ButtonState.Released) { ScreenManager.RemoveScreen(this); foreach (GameScreen screen in screensToLoad) { if (screen != null) { ScreenManager.AddScreen(screen, ControllingPlayer); } } ScreenManager.Game.ResetElapsedTime(); } } base.HandleInput(input); }