Example #1
0
 public virtual void Draw(SpriteBatch spritebatch)
 {
     foreach (IStateElement state in states)
     {
         if (state.State != ScreenState.Hidden)
         {
             /*
              * Piirretään juttuja ennen transitionia
              */
             state.PreRender();
             // piirretään early transition
             if (state.State == ScreenState.TransitionOn || state.State == ScreenState.TransitionOff)
             {
                 if (leaveTransition != null)
                 {
                     leaveTransition.PreRender(spritebatch);
                 }
                 else if (enterTransition != null)
                 {
                     enterTransition.PreRender(spritebatch);
                 }
             }
             // piirretään itse ruutu
             state.Draw();
             // piiretään late transition
             if (state.State == ScreenState.TransitionOn || state.State == ScreenState.TransitionOff)
             {
                 if (leaveTransition != null)
                 {
                     leaveTransition.PostRender(spritebatch);
                 }
                 else if (enterTransition != null)
                 {
                     enterTransition.PostRender(spritebatch);
                 }
             }
             // piirretään late ruutu
             state.PostRender();
         }
     }
 }