/// <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); }