/// <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) { GraphicsDevice.Clear(Color.CornflowerBlue); var viewMatrix = camera.GetViewMatrix(); switch (CurrentGameState) { case GameState.MainMenu: spriteBatch.Begin(); _mainStartButton.Draw(spriteBatch); _mainControlsButton.Draw(spriteBatch); spriteBatch.End(); break; case GameState.Controls: spriteBatch.Begin(); _controlsLayout.Draw(spriteBatch); _controlsBackButton.Draw(spriteBatch); spriteBatch.End(); break; case GameState.Level1: DrawLevel(_level1, viewMatrix); break; case GameState.Level2: DrawLevel(_level2, viewMatrix); break; case GameState.EndScreen: GraphicsDevice.Clear(Color.Black); spriteBatch.Begin(); spriteBatch.DrawString(endScreenFont, "Totale score: " + playerPoints.ToString(), new Vector2(300, 300), Color.White); _victoryAchieved.Draw(spriteBatch); spriteBatch.End(); break; } base.Draw(gameTime); }