protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); _spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, _camera.GetPosition()); _background.Draw(_spriteBatch); switch (_currentGameState) { case GameState.STARTSCREEN: _menuManager.Draw(_spriteBatch); break; case GameState.MAINMENU: _menuManager.Draw(_spriteBatch); break; case GameState.OPTIONSMENU: _menuManager.Draw(_spriteBatch); break; case GameState.HIGHSCORE: _menuManager.Draw(_spriteBatch); break; case GameState.LOADMENU: break; case GameState.MAPEDIT: _mapEditor.Draw(_spriteBatch); break; case GameState.CREDIT: _menuManager.Draw(_spriteBatch); break; case GameState.PLAYING: _gameManager.Draw(_spriteBatch); break; case GameState.PAUSE: _gameManager.Draw(_spriteBatch); _menuManager.Draw(_spriteBatch); break; case GameState.ENDSCREEN: _menuManager.Draw(_spriteBatch); break; case GameState.QUIT: Exit(); break; } _spriteBatch.End(); base.Draw(gameTime); }
/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, camera.Transform); if (GameStateMachine.Instance.DrawBackground) { background.Draw(spriteBatch, gameTime); } GameStateMachine.Instance.Draw(gameTime, spriteBatch); base.Draw(gameTime); }