// For use if camera is to follow player public void Draw(SpriteBatch spriteBatch, Camera2D cam, GraphicsDevice graDev) { spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend, null, null, null, null, cam.GetTransform(graDev)); RoomManager.getInstance.Draw(spriteBatch); // Only run draw if not in Game Over state if (Global.GameState != Global.availGameStates.GameOver) { // Update Texture path for animating entity mEntities.ForEach(IEntity => IEntity.aTexture = Content.Load <Texture2D>(IEntity.aTexturename)); // Call draw method for each Entity if entity is visible for (int i = 0; i < mEntities.Count; i++) { if (mEntities[i].Visible) { mEntities[i].Draw(spriteBatch); } } // Run Dialogue display if game in Dialogue State if (Global.GameState == Global.availGameStates.Dialogue) { DialogueBox.getInstance.Draw(spriteBatch); } if (Global.GameState == Global.availGameStates.Paused && MenuManager.getInstance.PauseMenu() != null) { MenuManager.getInstance.PauseMenu().Draw(spriteBatch); } } else if (MenuManager.getInstance.GameOverMenu() != null && Global.GameState == Global.availGameStates.GameOver) { MenuManager.getInstance.GameOverMenu().Draw(spriteBatch); } spriteBatch.End(); }
// To relay following camera to SM public void Draw(SpriteBatch spriteBatch, Camera2D cam, GraphicsDevice graDev) { SceneManager.getInstance.Draw(spriteBatch, cam, graDev); }
/// <summary> /// Call if 2D camera is needed /// </summary> public void Need2DCamera() { mCamera = new Camera2D(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight); }