/// <summary> /// Activates the loading screen. /// </summary> public static void Load(ScreenManager screenManager, bool loadingIsSlow, PlayerIndex? controllingPlayer, bool loadIndicator, params GameScreen[] screensToLoad) { // Tell all the current screens to transition off. foreach (GameScreen screen in screenManager.GetScreens()) screen.ExitScreen(); // Create and activate the loading screen. LoadingScreen loadingScreen = new LoadingScreen(screenManager, loadingIsSlow, loadIndicator, screensToLoad); screenManager.AddScreen(loadingScreen, controllingPlayer); }
/// <summary> /// The constructor is private: loading screens should /// be activated via the static Load method instead. /// </summary> private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow, bool loadIndicator, GameScreen[] screensToLoad) { this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; this.progressBar = new ProgressBar(screenManager.Game.GraphicsDevice, 75, 360, 700, 50); this.progressBar.minimum = 0; this.progressBar.maximum = 100; this.loadIndicator = loadIndicator; loadThread = new Thread(Load); loadProgress = 0; TransitionOnTime = TimeSpan.FromSeconds(0.5); }