public GameStateManagementGame() { Content.RootDirectory = "Content"; graphics = new GraphicsDeviceManager(this); //TargetElapsedTime = TimeSpan.FromTicks(333333); TargetElapsedTime = TimeSpan.FromTicks(333); #if WINDOWS_PHONE graphics.IsFullScreen = true; InitializeLandscapeGraphics(); #endif screenFactory = new ScreenFactory(); Services.AddService(typeof(IScreenFactory), screenFactory); screenManager = new ScreenManager(this); Components.Add(screenManager); #if WINDOWS_PHONE // hook Microsoft.Phone.Shell.PhoneApplicationService.Current.Launching += new EventHandler<Microsoft.Phone.Shell.LaunchingEventArgs>(GameLaunching); Microsoft.Phone.Shell.PhoneApplicationService.Current.Activated += new EventHandler<Microsoft.Phone.Shell.ActivatedEventArgs>(GameActivated); Microsoft.Phone.Shell.PhoneApplicationService.Current.Deactivated += new EventHandler<Microsoft.Phone.Shell.DeactivatedEventArgs>(GameDeactivated); #else AddInitialScreens(); #endif gameMusic = Content.Load<SoundEffect>("sounds/GamePlayHalfBit"); gameMusicI = gameMusic.CreateInstance(); gameMusicI.IsLooped = true; gameMusicI.Play(); }
/// <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) { this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; 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); }