Exemple #1
0
        public void Update(GameTime gameTime)
        {
            float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (state == FadeState.In)
            {
                fadeAlpha       = MathHelper.Clamp(fadeAlpha - (elapsed * fadeSpeed), 0, 1);
                fadeImage.Alpha = fadeAlpha;
                fadeImage.Color = Color.White * fadeImage.Alpha;
                if (fadeAlpha <= 0)
                {
                    state = FadeState.Idle;
                }
            }
            else if (state == FadeState.Out)
            {
                fadeAlpha       = MathHelper.Clamp(fadeAlpha + (elapsed * fadeSpeed), 0, 1);
                fadeImage.Alpha = fadeAlpha;
                fadeImage.Color = Color.White * fadeImage.Alpha;
                if (fadeAlpha >= 1) //Done fading to black, now set new screen and fade into it
                {
                    //Destory objects from the first screen
                    if (Current != null)
                    {
                        Current.Remove();
                    }
                    Current = fadeTo;
                    Current.Add(this);
                    state = FadeState.In;
                    fadeImage.BringToFront();
                }
            }
        }
Exemple #2
0
 /// <summary>
 /// Transitions from the current screen to the next
 /// </summary>
 public void SwitchScreen(IScreen newScreen)
 {
     //Do not fade if setting the login screen (first screen)
     if ((newScreen is LoginScreen) && Current == null)
     {
         //Destory objects from the first screen
         if (Current != null)
         {
             Current.Remove();
         }
         Current = newScreen;
         Current.Add(this);
     }
     else
     {
         //Set the current screen and add it's objects
         fadeTo = newScreen;
         state  = FadeState.Out;
     }
     fadeImage.BringToFront();
 }
 /// <summary>
 /// Transitions from the current screen to the next
 /// </summary>
 public void SwitchScreen(IScreen newScreen)
 {
     //Do not fade if setting the login screen (first screen)
     if ((newScreen is LoginScreen) && Current == null)
     {
         //Destory objects from the first screen
         if (Current != null)
         {
             Current.Remove();
         }
         Current = newScreen;
         Current.Add(this);
     }
     else
     {
         //Set the current screen and add it's objects
         fadeTo = newScreen;
         state = FadeState.Out;
     }
     fadeImage.BringToFront();
 }