/// <summary> /// Construtor privado, somente intanciado pelo método estático 'Load' /// </summary> private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow, string displayText, GameScreen[] screensToLoad) { this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; // Se estiver vazia a string, seta os valores padrões if (string.IsNullOrEmpty(displayText)) { displayText = "Loading..."; this.TransitionOnTime = TimeSpan.FromSeconds(0.5); } else { this.displayText = displayText; this.TransitionOnTime = TimeSpan.FromSeconds(5); } }
/// <summary> /// Remove uma tela da lista do gerencidor de telas /// Não oferece transição gradual de fechamento, é imediata /// </summary> public void RemoveScreen(GameScreen screen) { // Se já tiver sido inicializada com um dipositivo gráfico if (this.isInitialized) { // Descarrega os conteúdos da tela screen.UnloadContent(); } // Remove da lista de telas e de sua cópia this.screens.Remove(screen); this.screensToUpdate.Remove(screen); }
/// <summary> /// Adiciona uma nova tela à lista do gerenciador de telas /// </summary> public void AddScreen(GameScreen screen, PlayerIndex? controllingPlayer) { screen.ControllingPlayer = controllingPlayer; screen.ScreenManager = this; screen.IsExiting = false; // Se já tiver sido inicializada com um dipositivo gráfico if (this.isInitialized) { // Carrega os conteúdos da tela screen.LoadContent(); } // Adiciona à coleção de telas this.screens.Add(screen); }