public override void Draw(GameTime gameTime) { switch (_currentState) { case States.Playing: _spriteBatch.Begin(SpriteSortMode.FrontToBack); if (_showGrid) { foreach (var grid in _grids) { grid.Draw(gameTime, _spriteBatch); } } _currentArea.Draw(gameTime, _spriteBatch); _player.Draw(gameTime, _spriteBatch); _spriteBatch.End(); break; case States.Battle: _battleState.Draw(gameTime); break; case States.AfterBattle: _afterBattleState.Draw(gameTime); break; case States.Paused: _pauseState.Draw(gameTime); break; case States.Map: _mapState.Draw(gameTime); break; default: break; } _spriteBatch.Begin(); _transition.Draw(gameTime, _spriteBatch); _spriteBatch.End(); }
/// <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) { if (menuState) { GraphicsDevice.Clear(Color.CornflowerBlue); _spriteBatch.Begin(); menu.Draw(_spriteBatch); _spriteBatch.End(); } else { if (!pausedState && !gameOverState) { if (hidden == true) { GraphicsDevice.Clear(Color.Black); } else { GraphicsDevice.Clear(Color.CornflowerBlue); background.Draw(_spriteBatch, camera); } _spriteBatch.Begin(SpriteSortMode.BackToFront, null, SamplerState.LinearWrap, null, null, null, camera.GetViewMatrix(Vector2.One)); level.Draw(_spriteBatch); _spriteBatch.End(); Feedback.Draw(_spriteBatch, camera); base.Draw(gameTime); } else if (pausedState) { _spriteBatch.Begin(SpriteSortMode.BackToFront, null, SamplerState.LinearWrap, null, null, null, camera.GetViewMatrix(Vector2.One)); pause.Draw(_spriteBatch); _spriteBatch.End(); } } }