/// <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(); switch (State) { case GameState.StartMenu: // See Menu break; case GameState.Pause: break; case GameState.Stop: break; default: // Playing & Pause spriteBatch.DrawString(FontManager.Instance.Crackman, "PacPac", new Vector2(maze.Dimension.Max.X + 10, 20), Color.White); spriteBatch.DrawString(FontManager.Instance.Arcade, "Life: ", new Vector2(maze.Dimension.Max.X + 10, 50), Color.White); Texture2D tx_pac = pac.Representation.CurrentTexture != null ? pac.Representation.CurrentTexture : pac.Texture; for (int i = 0; i < pac.Life; i++) { spriteBatch.Draw(tx_pac, new Vector2(maze.Dimension.Max.X + 10 + i * Maze.SPRITE_DIMENSION, 80), Color.White); } // Drawn score spriteBatch.DrawString(FontManager.Instance.Arcade, "Score: " + Score, new Vector2(maze.Dimension.Max.X + 10, 110), Color.White); // Draw bonus if (Bonus != 0) { spriteBatch.DrawString(FontManager.Instance.Arcade, (Bonus > 0 ? "+" : "") + Bonus, new Vector2(maze.Dimension.Max.X + 150, 110), Color.Yellow); } spriteBatch.DrawString(FontManager.Instance.Arcade, "Level " + Level, new Vector2(maze.Dimension.Max.X + 10, 140), Color.White); #if DEBUG spriteBatch.DrawString(FontManager.Instance.Arcade, "Pac : (" + pac.Position.X + " ; " + pac.Position.Y + ")", new Vector2(maze.Dimension.Max.X + 10, 500), Color.White); spriteBatch.DrawString(FontManager.Instance.Arcade, " [" + pac.ConvertPositionToTileIndexes().X + ", " + pac.ConvertPositionToTileIndexes().Y + "]", new Vector2(maze.Dimension.Max.X + 10, 530), Color.White); #endif break; } spriteBatch.End(); base.Draw(gameTime); }