/// <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.Black); spriteBatch.Begin(); if (gameState == GameStates.TitleScreen) { spriteBatch.Draw(titleScreen, new Rectangle(0, 0, this.Window.ClientBounds.Width, this.Window.ClientBounds.Height), Color.White); } if ((gameState == GameStates.Playing) || (gameState == GameStates.PlayerDead) || (gameState == GameStates.GameOver)) { starField.Draw(spriteBatch); asteroidManager.Draw(spriteBatch); playerManager.Draw(spriteBatch); enemyManager.Draw(spriteBatch); explosionManager.Draw(spriteBatch); powerupManager.Draw(spriteBatch); spriteBatch.DrawString( pericles14, "Score: " + playerManager.PlayerScore.ToString(), scoreLocation, Color.White); if (playerManager.LivesRemaining >= 0) { spriteBatch.DrawString( pericles14, "Ships Remaining: " + playerManager.LivesRemaining.ToString(), livesLocation, Color.White); } } if ((gameState == GameStates.GameOver)) { spriteBatch.DrawString( pericles14, "G A M E O V E R !", new Vector2( this.Window.ClientBounds.Width / 2 - pericles14.MeasureString("G A M E O V E R !").X / 2, 50), Color.White); } spriteBatch.End(); base.Draw(gameTime); }