/// <summary> /// The constructor is private: loading screens should /// be activated via the static Load method instead. /// </summary> private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow, GameScreen[] screensToLoad) { _loadingIsSlow = loadingIsSlow; _screensToLoad = screensToLoad; // we don't serialize loading screens. if the user exits while the // game is at a loading screen, the game will resume at the screen // before the loading screen. IsSerializable = false; TransitionOnTime = TimeSpan.FromSeconds(0.5); }
/// <summary> /// Activates the loading screen. /// </summary> public static void Load(ScreenManager screenManager, bool loadingIsSlow, PlayerIndex? controllingPlayer, 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, screensToLoad); screenManager.AddScreen(loadingScreen, controllingPlayer); }
/// <summary> /// The main game constructor. /// </summary> public NathanielGame() { _graphics = new GraphicsDeviceManager(this) {IsFullScreen = true}; if (Services != null) StaticContent = new ContentManager(Services); TargetElapsedTime = TimeSpan.FromTicks(333333); // configure the content manager Content.RootDirectory = "Content"; StaticContent.RootDirectory = "Content"; InitializeLandscapeGraphics(); //InitializePortraitGraphics(); // Create the screen manager component. _screenManager = new ScreenManager(this); Components.Add(_screenManager); // attempt to deserialize the screen manager from disk. if that // fails, we add our default screens. if (_screenManager.DeserializeState()) return; // Activate the first screens. _screenManager.AddScreen(new BackgroundScreen(), null); _screenManager.AddScreen(new MainMenuScreen(), null); }