IGameState mCurrentState;//当前状态 public GameStateManager() { mStatesDict = new Dictionary <GameStateTypeEnum, IGameState>(); IGameState gameState; gameState = new LoginState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new UserState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new LobbyState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new RoomState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new HeroState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new LoadingState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new PlayState(); mStatesDict.Add(gameState.GetStateType(), gameState); gameState = new OverState(); mStatesDict.Add(gameState.GetStateType(), gameState); }
public void OnEvent(FEvent evt) { switch ((GameEventEnum)evt.GetEventId()) { case GameEventEnum.Loading: { GameStateTypeEnum stateType = (GameStateTypeEnum)evt.GetParam("NextState"); LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(stateType); lState.SetFrontScenes(View.EScenesType.EST_Play); SetStateTo(GameStateTypeEnum.Loading); } break; case GameEventEnum.IntoRoom: { LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(GameStateTypeEnum.Room); lState.SetFrontScenes(View.EScenesType.EST_Play); SetStateTo(GameStateTypeEnum.Loading); } break; case GameEventEnum.IntoLobby: { LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(GameStateTypeEnum.Lobby); lState.SetFrontScenes(View.EScenesType.EST_Play); SetStateTo(GameStateTypeEnum.Loading); } break; } }
private void SdkLogOff() { GameMethod.LogOutToLogin(); LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(GameStateTypeEnum.Login); lState.SetFrontScenes(View.EScenesType.EST_Play); SetStateTo(GameStateTypeEnum.Loading); }
public void OnEvent(FEvent evt) { switch ((GameEventEnum)evt.GetEventId()) { case GameEventEnum.IntoRoom: { //获取当前状态 LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(GameStateTypeEnum.Room); lState.SetFrontScenes(View.EScenesType.EST_Play); SetStateTo(GameStateTypeEnum.Loading); } break; } }
public void OnEvent(FEvent evt) { switch ((GameEventEnum)evt.GetEventId()) { case GameEventEnum.IntoRoom: //创建房间(自定义) SetStateTo(GameStateTypeEnum.Room); break; case GameEventEnum.IntoHero: //英雄选择 GameStateManager.Instance.ChangeGameStateTo(GameStateTypeEnum.Hero); break; case GameEventEnum.Loading: //加载状态 GameStateTypeEnum stateType = (GameStateTypeEnum)evt.GetParam("NextState"); LoadingState lState = GameStateManager.Instance.getState(GameStateTypeEnum.Loading) as LoadingState; lState.SetNextState(stateType); lState.SetFrontScenes(View.EScenesType.EST_Login); SetStateTo(GameStateTypeEnum.Loading); break; } }