protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); _spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, DepthStencilState.DepthRead); switch (_gameState) { case GameState.StartScreen: title.Render(_spriteBatch); start.Render(_spriteBatch); break; case GameState.GameScreen: WorldManager.WorldRender(_spriteBatch); Player.Render(_spriteBatch); SupernovaObject.Render(_spriteBatch); InfoBar.Render(_spriteBatch); break; case GameState.LoseScreen: font = Content.Load <SpriteFont>("BaseFont"); String score = Player.Score.ToString(); _spriteBatch.DrawString( font, "GAME OVER", new Vector2(640 * Camera.GetWidthScalar(), 50), Color.Red, 0, new Vector2(font.MeasureString("GAME OVER").X / 2, 0), Vector2.One, SpriteEffects.None, 0); _spriteBatch.DrawString( font, "Score", new Vector2(640 * Camera.GetWidthScalar(), 200), Color.Gray, 0, new Vector2(font.MeasureString("Score").X / 2, 0), new Vector2(0.5F, 0.5F), SpriteEffects.None, 0); _spriteBatch.DrawString( font, score, new Vector2( 640 * Camera.GetWidthScalar(), 360 * Camera.GetHeightScalar()), Color.White, 0, new Vector2(font.MeasureString(score).X / 2, font.MeasureString(score).Y / 2), Vector2.One, SpriteEffects.None, 0); end.Render(_spriteBatch); break; default: throw new Exception("Unknown Game State"); } base.Draw(gameTime); _spriteBatch.End(); }