예제 #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.White);

            switch (currentState)
            {
            case GameState.Splash:
                splashScreen.Draw(spriteBatch);
                break;

            case GameState.Menu:
                menuManager.DrawMenuScreen(spriteBatch);
                break;

            case GameState.Playing:
                // Background
                spriteBatch.Begin();
                spriteBatch.Draw(back, nullPosition, Color.White);
                spriteBatch.End();

                // Player,Crates etc.
                spriteBatch.Begin(SpriteSortMode.Deferred,
                                  BlendState.AlphaBlend,
                                  null, null, null, null,
                                  camera.Transform);
                crateManager.Draw(spriteBatch);
                map.Draw(spriteBatch);
                player.Draw(spriteBatch);
                if (player.Position.X > 200 && player.Position.X < 250)
                {
                    spriteBatch.Draw(speechBubble, player.Position + new Vector2(-30, -100), Color.White);
                }
                spriteBatch.Draw(cloud, cloudpos, Color.White);
                spriteBatch.End();

                // HUD
                hud.Draw(spriteBatch);
                break;

            case GameState.Pause:
                menuManager.DrawPauseScreen(spriteBatch);
                break;
            }

            base.Draw(gameTime);
        }