/// <summary> /// Removes the a screen /// </summary> /// <param name="screen">Screen to remove</param> public void RemoveScreen(GameScreenBase screen) { if (screen == null) { return; } screen.OnLeave(); screen.UnloadContent(); Screens.Remove(screen); if (Screens.Count > 0) { Screens[Screens.Count - 1].OnEnter(); } }
/// <summary> /// Pushes a GameScreen over the current game state /// </summary> /// <param name="screen">Screen handle</param> public void AddScreen(GameScreenBase screen) { if (screen == null) { return; } if (Screens.Count > 0) { GameScreenBase current = Screens[Screens.Count - 1]; current.OnLeave(); } Screens.Add(screen); screen.ScreenManager = this; screen.IsExiting = false; screen.LoadContent(); screen.OnEnter(); }