/// <summary> /// Рисуем экран загрузки. /// </summary> public override void Draw(GameTime gameTime) { //Проверяем завершились ли предидущие экраны. Это очень важно для того, чтобы все выглядело хорошо. //Нам нужно обращяться к конструкции без них, прежде чем мы выполним загрузку. if ((ScreenState == ScreenState.Active) && (ScreenManager.GetScreens().Length == 1)) { otherScreensAreGone = true; } //Экрану загрузки требуется время для выполнения, так что мы отобразим загрузку. //этот параметр говорит нам сколько времени займет загрузка. if (loadingIsSlow) { SpriteBatch spriteBatch = ScreenManager.SpriteBatch; SpriteFont font = ScreenManager.Font; const string message = "Loading..."; //Выравниваем текст в окне отображения. Viewport viewport = ScreenManager.GraphicsDevice.Viewport; Vector2 viewportSize = new Vector2(viewport.Width, viewport.Height); Vector2 textSize = font.MeasureString(message); Vector2 textPosition = (viewportSize - textSize) / 2; Color color = Color.White * TransitionAlpha; //Рисуем текст. spriteBatch.Begin(); spriteBatch.DrawString(font, message, textPosition, color); spriteBatch.End(); } }
/// <summary> /// Активация экрана загруззки. /// </summary> public static void Load(ScreenManager screenManager, bool loadingIsSlow, PlayerIndex? controllingPlayer, params GameScreen[] screensToLoad) { //Даем команду текущим экранам исчезнуть. foreach (GameScreen screen in screenManager.GetScreens()) screen.ExitScreen(); //Создаем и активируем экран загрузки. LoadingScreen loadingScreen = new LoadingScreen(screenManager, loadingIsSlow, screensToLoad); screenManager.AddScreen(loadingScreen, controllingPlayer); }
/// <summary> /// Активация экрана загруззки. /// </summary> public static void Load(ScreenManager screenManager, bool loadingIsSlow, PlayerIndex?controllingPlayer, params GameScreen[] screensToLoad) { //Даем команду текущим экранам исчезнуть. foreach (GameScreen screen in screenManager.GetScreens()) { screen.ExitScreen(); } //Создаем и активируем экран загрузки. LoadingScreen loadingScreen = new LoadingScreen(screenManager, loadingIsSlow, screensToLoad); screenManager.AddScreen(loadingScreen, controllingPlayer); }