상속: IDisposable
예제 #1
0
        /// <summary>
        /// Pushes the specified screen.
        /// </summary>
        /// <param name="screen">The screen.</param>
        public void Push(Screen screen)
        {
            foreach (var s in _screenStack)
            {
                if (s.TransitionState == TransitionState.On || s.TransitionState == TransitionState.Shown)
                    s.TransitionState = TransitionState.Off;
            }

            _screens.Add(screen);
            _screenStack.Push(screen);
            screen.TransitionState = TransitionState.On;
            screen.Manager = this;
        }
예제 #2
0
 private void UpdateTransition(Screen screen, GameTime gameTime)
 {
     if (screen.TransitionState == TransitionState.On)
     {
         if (screen.TransitionOn == TimeSpan.Zero)
             screen.TransitionProgress = 1;
         else
             screen.TransitionProgress = MathHelper.Clamp(screen.TransitionProgress + (float)(gameTime.ElapsedGameTime.TotalSeconds / screen.TransitionOn.TotalSeconds), 0, 1);
     }
     else
     {
         if (screen.TransitionOn == TimeSpan.Zero)
             screen.TransitionProgress = 0;
         else
             screen.TransitionProgress = MathHelper.Clamp(screen.TransitionProgress - (float)(gameTime.ElapsedGameTime.TotalSeconds / screen.TransitionOff.TotalSeconds), 0, 1);
     }
 }