protected override void Update(GameTime gameTime)
 {
     if (nextState != null)
     {
         currentState = nextState;
         nextState    = null;
     }
     if (currentState != null)
     {
         currentState.Update(gameTime);
     }
     base.Update(gameTime);
 }