Exemple #1
0
        /// <summary>
        ///   Fades the whole Application screen in.
        /// </summary>
        /// <param name = "startColor">The Color used for start</param>
        /// <param name = "length">The length in seconds the fade operation should last</param>
        public static void FadeIn(Color startColor, float length)
        {
            if (_fadeActive)
            {
                Debug.WriteLine("Fading already active");
                return;
            }

            //
            if (_hideActive)
            {
                _hideActive = false;
            }
            _fadeActive = true;

            Instance._transitionColor = startColor;

            Interpolator.Create(1.0f, 0.0f, length,
                                (step) =>
            {
                Instance._transitionColor = new Color(Convert.ToSingle(Instance._transitionColor.R),
                                                      Convert.ToSingle(Instance._transitionColor.G),
                                                      Convert.ToSingle(Instance._transitionColor.B),
                                                      step.Value);
            }, completed => _fadeActive = false);
        }
Exemple #2
0
        /// <summary>
        ///   Fades the whole Application screen out.
        /// </summary>
        /// <param name = "endColor">The Color used for end</param>
        /// <param name = "length">The length in seconds the fade operation should last</param>
        public static void FadeOut(Color endColor, float length)
        {
            if (_fadeActive)
            {
                Debug.WriteLine("Fading already active");
                return;
            }

            if (_hideActive)
            {
                Debug.WriteLine("Screen already hidden");
                return;
            }

            _fadeActive = true;

            Instance._transitionColor = endColor * 0f;

            Interpolator.Create(0.0f, 1.0f, length,
                                (step) =>
            {
                Instance._transitionColor = new Color(Convert.ToSingle(Instance._transitionColor.R),
                                                      Convert.ToSingle(Instance._transitionColor.G),
                                                      Convert.ToSingle(Instance._transitionColor.B),
                                                      step.Value);
            }, completed =>
            {
                _fadeActive = false;
                _hideActive = true;
            });
        }
Exemple #3
0
        /// <summary>
        ///   Full update
        /// </summary>
        /// <param name = "gameTime">Time passed since the last call to Update.</param>
        protected override void Update(GameTime gameTime)
        {
#if WINDOWS
            if (SunBurn.Editor != null && SunBurn.Editor.EditorAttached)
            {
                Input.Enabled = false;
            }
            else
            {
                Input.Enabled = true;
            }
#endif

            base.Update(gameTime);

            // we update the ThreadPool
            Threads.Update();

            // we update the Interpolator and Timer providers
            Interpolator.Update((float)gameTime.ElapsedGameTime.TotalSeconds);
            Timer.Update((float)gameTime.ElapsedGameTime.TotalSeconds);

            // If the current GameState is loaded, we update it, otherwise, we update its LoadingGameState
            if (ActiveGameState != null && ActiveGameState.IsLoadingComplete &&
                (_loadingGameState == null || _loadingGameState.ShouldRenderLoadedGameState))
            {
                ((IUpdate)ActiveGameState).Update(gameTime);
            }
            if (_loadingGameState != null && _loadingGameState.IsLoadingComplete &&
                !_loadingGameState.ShouldRenderLoadedGameState)
            {
                ((IUpdate)_loadingGameState).Update(gameTime);
            }
        }