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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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;
     }
 }
Esempio n. 5
0
        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;
            }
        }