protected override void Update(GameTime gameTime) { KeyboardState keyboard = Keyboard.GetState(); if (IsActive) { // toggle fullscreen / windowed mode with alt + enter if ((keyboard.IsKeyDown(Keys.LeftAlt) || keyboard.IsKeyDown(Keys.RightAlt)) && keyboard.IsKeyDown(Keys.Enter)) { if (!fullScreenButtonPressed) { graphics.ToggleFullScreen(); settings.fullScreen = graphics.IsFullScreen; fullScreenButtonPressed = true; } } else { fullScreenButtonPressed = false; } bool alternateInput = fullScreenButtonPressed; if (!alternateInput) { // handle menu input menu.handleInput(); if (!menu.active) { // handle player input spaceShipSystem.handleInput(gameTime); } } } // update game management systems (if menu is off) if (!menu.active) { projectileSystem.update(gameTime); spaceShipSystem.update(gameTime); asteroidSystem.update(gameTime); explosionSystem.update(gameTime); collisionSystem.handleCollisions(); } base.Update(gameTime); }