Exemplo n.º 1
0
        /// <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();
            }
        }
Exemplo n.º 2
0
        /// <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();
        }