Example #1
0
        /// <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();
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }