コード例 #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.CornflowerBlue);

            switch (gameState)
            {
            case GameState.Menu:
                spriteBatch.Begin();
                menuManager.Draw(spriteBatch);
                break;

            case GameState.Game:
                //The game needs differend spriteBatches for parallax, camera and UI. So three in a row for them...
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null);
                gameManager.ParallaxDraw(spriteBatch);
                spriteBatch.End();
                spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, gameManager.camera.GetViewMatrix());
                gameManager.Draw(spriteBatch);
                spriteBatch.End();
                spriteBatch.Begin();
                gameManager.UIDraw(spriteBatch);
                break;

            case GameState.Score:
                spriteBatch.Begin();
                scoreManager.Draw(spriteBatch);
                break;

            case GameState.Quit:
                spriteBatch.Begin();
                break;

            default:
                break;
            }

            //spriteBatch.End();

            // TODO: Add your drawing code here
            //spriteBatch.Begin();
            //gameManager.Draw(spriteBatch);
            spriteBatch.End();

            base.Draw(gameTime);
        }