/// <summary> /// The constructor is private: loading screens should /// be activated via the static Load method instead. /// </summary> public LoadingScreen(ScreenManager screenManager, bool loadingIsSlow, GameScreen[] screensToLoad) { this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; TransitionOnTime = TimeSpan.FromSeconds(0.5); // If this is going to be a slow load operation, create a background // thread that will update the network session and draw the load screen // animation while the load is taking place. if (loadingIsSlow) { backgroundThread = new Thread(BackgroundWorkerThread); backgroundThreadExit = new ManualResetEvent(false); graphicsDevice = screenManager.GraphicsDevice; // Look up some services that will be used by the background thread. IServiceProvider services = screenManager.Game.Services; networkSession = (NetworkSession)services.GetService( typeof(NetworkSession)); messageDisplay = (IMessageDisplay)services.GetService( typeof(IMessageDisplay)); } }
/// <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); }
// public Game1() { _graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; IsFixedTimeStep = true; TargetElapsedTime = TimeSpan.FromMilliseconds(20); // 20 milliseconds, or 50 FPS. SoundController.SetContent(Content); screenManager = new ScreenManager(this); Components.Add(screenManager); Components.Add(new MessageDisplayComponent(this)); Components.Add(new GamerServicesComponent(this)); screenManager.AddScreen(new BackgroundScreen(), null); screenManager.AddScreen(new MainMenuScreen(), null); foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes) { modes.Add(mode); Resulotions.Add("" + mode.Width + "x" + mode.Height); } }