/// <summary> /// The main game constructor. /// </summary> public JDBaconTheGame() { Content.RootDirectory = "Content"; this.IsFixedTimeStep = false; this.Window.AllowUserResizing = true; graphics = new GraphicsDeviceManager(this); graphics.GraphicsProfile = GraphicsProfile.HiDef; graphics.SynchronizeWithVerticalRetrace = false; graphics.PreferMultiSampling = true; graphics.PreferredBackBufferWidth = 840; graphics.PreferredBackBufferHeight = 480; // Establishing JDBTG object instances. JDBTG.MusicManager = new EasyXnaAudioComponent(this, "Assets/Audio"); // Create the screen manager component. screenManager = new ScreenManager(this); // Activate the first screens. screenManager.AddScreen(new BackgroundScreen(), null); screenManager.AddScreen(new MainMenuScreen(), null); Collision = new CollisionSystemPersistentSAP(); World = new World(Collision); World.AllowDeactivation = true; World.Gravity = new JVector(0, -10, 0); cullMode = new RasterizerState(); cullMode.CullMode = CullMode.None; normal = new RasterizerState(); Components.Add(screenManager); }
/// <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); }