public static void SlideMenuView(DynamicMenuScene sender, DynamicMenuScene[] targets, Scene.SceneState finalSenderState, Scene.SceneState finalTargetState)
 {
     DynamicMenuScene target = null;
     if (TouchInput.IsScreenTouched)
     {
         World.cam_Main.Transform.Position += TouchInput.TouchDifference * -1.2f;
     }
     else if (TouchInput.ScreenIsNoLongerTouched)
     {
         target = GetClosestMenu(targets);
         if (target == sender)
         {
             target.Transition(target.State, null);
             return;
         }
         if (sender != null)
             sender.Transition(finalSenderState, target);
         target.Transition(finalTargetState, sender);
     }
 }
 public void Transition(Scene.SceneState stateToTransitionTo, Scene otherScreen)
 {
     base.Transition(stateToTransitionTo, otherScreen);
     if (stateToTransitionTo == SceneState.Active)
         _newLevelButton.PopOut();
     else if (stateToTransitionTo == SceneState.Inactive)
         _newLevelButton.PopIn();
 }
 public DeferredRenderer(Game1 game)
     : base(game)
 {
     m_scene = new Scene(game);
     m_camera = new Camera(Game);
 }
 public virtual void Transition(SceneState stateToTransitionTo, Scene otherScreen)
 {
     _otherScreen = otherScreen;
     _screenState = SceneState.Transitioning;
     _nextState = stateToTransitionTo;
 }
 /// <summary>
 /// Exits from Screen 1 to Screen 2
 /// </summary>
 /// <param name="screen1">Name of Screen 1 (Plays Outro)</param>
 /// <param name="screen2">Name of Screen 2 (Plays Intro)</param>
 public void Transition(Scene screen1, Scene screen2)
 {
     screen1.Transition(Scene.SceneState.Inactive, screen2);
     screen2.Transition(Scene.SceneState.Active, screen1);
 }
 /// <summary>
 /// Unlocks a previously locked scene and transitions out of the currently displayed screen.
 /// </summary>
 /// <param name="screenToUnlock"></param>
 /// <param name="oldScreen"></param>
 public void Outro_Unlock(Scene screenToUnlock, Scene oldScreen)
 {
     screenToUnlock.Transition(Scene.SceneState.Locked, oldScreen);
     oldScreen.Transition(Scene.SceneState.Inactive, screenToUnlock);
 }
 /// <summary>
 /// Locks a scene while another appears.
 /// </summary>
 /// <param name="screenToLock">Name of the screen to lock. (Plays Lock)</param>
 /// <param name="newScreen">Name of the screen to appear. (Plays Intro)</param>
 public void Intro_Lock(Scene screenToLock, Scene newScreen)
 {
     screenToLock.Transition(Scene.SceneState.Locked, newScreen);
     newScreen.Transition(Scene.SceneState.Active, screenToLock);
 }