protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(new Color(16, 36, 35)); spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.NonPremultiplied); //fps counter int fps = Frames.CalculateFrameRate(); var fontOrigin = TextFont.MeasureString(fps.ToString()) / 2; var position = new Vector2(50, 50); spriteBatch.DrawString(TextFont, fps.ToString(), position, Color.LightGreen, 0, fontOrigin, 0.25f, SpriteEffects.None, GameDrawOrder.BACKGROUND_TOP); switch (StateProvider.Instance.State) { case GameState.HIGHSCORE: DrawHighscore(spriteBatch); break; case GameState.MENU: MenuController.Draw(spriteBatch, TextFont); DrawPlayerMoney(spriteBatch); break; case GameState.CONTROLS: DrawControls(spriteBatch); break; case GameState.GAMEPAUSED: LevelController.CurrentLevel.Draw(spriteBatch); break; case GameState.LEVEL_INTRO: LevelController.CurrentLevel.LevelIntro.Draw(spriteBatch); break; case GameState.PLAYING_EASY: if (LevelController.CurrentLevel != null) { LevelController.CurrentLevel.Draw(spriteBatch); DrawPlayerMoney(spriteBatch); } break; case GameState.PLAYING_NORMAL: if (LevelController.CurrentLevel != null) { LevelController.CurrentLevel.Draw(spriteBatch); DrawPlayerMoney(spriteBatch); } break; case GameState.PLAYING_HARD: if (LevelController.CurrentLevel != null) { LevelController.CurrentLevel.Draw(spriteBatch); DrawPlayerMoney(spriteBatch); } break; } spriteBatch.End(); // TODO: Add your drawing code here base.Draw(gameTime); }