Exemple #1
0
        /// <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);
        }