Exemplo n.º 1
0
 /// <summary>
 /// 改变游戏状态
 /// </summary>
 /// <param name="eGameState"></param>
 /// <param name="loadingStyle"></param>
 /// <param name="callBackWhenChangeFinished"></param>
 public void ChangeGameState(string eGameState, ELoadingType loadingStyle, Action callBackWhenChangeFinished)
 {
     if (this.IsInChangingState)
     {
         ClientStateChangeArgs nextStateArgs = new ClientStateChangeArgs
         {
             sClientState  = eGameState,
             eLoadingStyle = loadingStyle,
             aCallBack     = callBackWhenChangeFinished
         };
         this.m_qClientNextStateQueue.Enqueue(nextStateArgs);
     }
     else
     {
         if (this.CurrentClientState != eGameState)
         {
             this.m_sNextGameState              = eGameState;
             this.m_eCurrentLoadingStyle        = loadingStyle;
             this.m_aCallBackWhenChangeFinished = callBackWhenChangeFinished;
             this.m_bIsInChangingState          = true;
             if (this.CurrentClientState != "Max")
             {
                 this.SetLoadingVisible(this.m_eCurrentLoadingStyle, true);
                 this.m_oCurrentClientState.OnLeave();
                 CaomaoDriver.ResourceModule.UnloadResource();
             }
             this.DoChangeToNewState();
         }
     }
 }
Exemplo n.º 2
0
 public void ChangeGameStateQueue()
 {
     if (this.m_qClientNextStateQueue.Count > 0)
     {
         ClientStateChangeArgs stateChangeArgs = this.m_qClientNextStateQueue.Dequeue();
         this.ChangeGameState(stateChangeArgs.sClientState, stateChangeArgs.eLoadingStyle, stateChangeArgs.aCallBack);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 改变游戏状态
 /// </summary>
 /// <param name="eGameState"></param>
 /// <param name="loadingStyle"></param>
 /// <param name="callBackWhenChangeFinished"></param>
 public void ChangeGameState(string eGameState, ELoadingStyle loadingStyle, Action callBackWhenChangeFinished)
 {
     if (this.IsInChangingState)
     {
         ClientStateChangeArgs item = new ClientStateChangeArgs
         {
             sClientState  = eGameState,
             eLoadingStyle = loadingStyle,
             aCallBack     = callBackWhenChangeFinished
         };
         this.m_qClientStateQueue.Enqueue(item);
     }
     else
     {
         this.m_oClientStateMachine.ConvertToState(eGameState, loadingStyle, callBackWhenChangeFinished);
         this.RegisterCallBackOnChangedFinished(new Action(this.ChangeGameStateQueue));
     }
 }