public void OnSwitchClientState(object sender, EventArgs arg) { GameEvtArg garg = arg as GameEvtArg; if (garg != null) { EGAME_STATE_TYPE state = (EGAME_STATE_TYPE)garg.databuf.ReadByte(); //如有需要做一些特別處理 switch (state) { case EGAME_STATE_TYPE.EGAME_STATE_GAME: { } break; case EGAME_STATE_TYPE.EGAME_STATE_MENU: { } break; default: { } break; } SwitchGameState(state); m_curState.OnStateBegin(); } }
public void SwitchGameState(EGAME_STATE_TYPE type) { if (m_curState == null) { return; } m_curState.OnStateEnd(); if (m_curState.GameState != type) { m_curState.OnStateEnd(); switch (type) { case EGAME_STATE_TYPE.EGAME_STATE_BASE: { m_curState = new GameBaseState(); } break; case EGAME_STATE_TYPE.EGAME_STATE_MENU: { m_curState = new GameMenuState(); } break; case EGAME_STATE_TYPE.EGAME_STATE_GAME: { m_curState = new GameRunState(); } break; } } }
public void SwitchGameState(EGAME_STATE_TYPE type) { if (m_curState == null) { } else if (m_curState.GameState != type) { m_curState.OnStateEnd(); switch (type) { } } }
public void SwitchGameState(EGAME_STATE_TYPE type) { if (m_curState == null) { m_curState.OnStateEnd(); } else if (m_curState.GameState != type) { m_curState.OnStateEnd(); switch (type) { case EGAME_STATE_TYPE.EGAME_STATE_BASE: { m_curState = new GameBaseState(); } break; } } }
public GameBaseState() { m_estateType = EGAME_STATE_TYPE.EGAME_STATE_BASE; m_evtCtx = new GameEventContext(); }