public void HandleInput(GameTime gameTime, InputHelper inputHelper) { //Exit on escape if (inputHelper.KeyPressed(Keys.Escape)) { System.Environment.Exit(1); } //change what we do based on gamestate switch (gameState) { // default default: gameState = GameState.MainMenu; break; // Menu - main menu case GameState.MainMenu: // make sure that you cannot select a non-existent option if (inputHelper.KeyPressed(Keys.Up) && MainMenu.currentItem > 0) { MainMenu.currentItem--; } if (inputHelper.KeyPressed(Keys.Down) && MainMenu.currentItem < 3) { MainMenu.currentItem++; } if (inputHelper.KeyPressed(Keys.Enter)) { MainMenu.OnAction(); } break; // Menu - settings case GameState.Settings: //same here if (inputHelper.KeyPressed(Keys.Up) && SettingsMenu.currentItem > 0) { SettingsMenu.currentItem--; } if (inputHelper.KeyPressed(Keys.Down) && SettingsMenu.currentItem < SettingsMenu.GetLength() - 1) { SettingsMenu.currentItem++; } if (inputHelper.KeyPressed(Keys.Right)) { Settings.ChangeSetting(true, Settings.GetSetting(SettingsMenu.currentItem)); } if (inputHelper.KeyPressed(Keys.Left)) { Settings.ChangeSetting(false, Settings.GetSetting(SettingsMenu.currentItem)); } if (inputHelper.KeyPressed(Keys.Enter)) { SettingsMenu.OnAction(); } break; // Menu - credits case GameState.Credits: if (inputHelper.KeyPressed(Keys.Enter)) { Credits.OnAction(); } break; // Menu - controls case GameState.Controls: if (inputHelper.KeyPressed(Keys.Enter)) { Controls.OnAction(); } break; // Menu - game over case GameState.GameOver: if (inputHelper.KeyPressed(Keys.Enter)) { GameOver.OnAction(); } break; // The game case GameState.Running: game.HandleInput(gameTime, inputHelper); break; } }