Exemple #1
0
        public override void Update(GameTime gameTime,
                                    bool otherScreenHasFocus, bool coveredByOtherScreen)
        {
            base.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen);
            if (!initialized)
            {
                if (initialTime <= 0)
                {
                    toggleFocus(MainContainer, true);
                    toggleMoveSpeed(MainContainer, true);
                    toggletScaleSpeed(MainContainer, true);
                    initialized = true;
                }
                else
                {
                    initialTime -= gameTime.ElapsedGameTime.Milliseconds;
                }
            }

            if (ParentScreen != null && HideParent)
            {
                if (IsExiting && ParentScreen.IsHidden)
                {
                    ParentScreen.show();
                }

                if (!IsExiting && !ParentScreen.IsHidden)
                {
                    ParentScreen.hide();
                }
            }

            // updates parent screen while its fading off
            // (or if UpdateParent is true)
            if (ParentScreen != null && !IsExiting &&
                (UpdateParent || ParentScreen.IsFadingOff))
            {
                ParentScreen.Update(gameTime, false, true);
            }

            // update IsFadingOff property
            if (isFadingOff)
            {
                if (fadeOffTime > TransitionOffTime.Milliseconds * 2)
                {
                    isFadingOff = false;
                }
                else
                {
                    fadeOffTime += gameTime.ElapsedGameTime.Milliseconds;
                }
            }
        }