public void NewGameState(GameStates.GameStateType newState) { // (1) state EXIT actions OnMyStateExit(currentState); // (2) change current state currentState = newState; // (3) state ENTER actions OnMyStateEnter(currentState); PostMessageDivider(); }
//--------- OnMyStateExit[ S ] - state specific actions private void OnMyStateExit(GameStates.GameStateType state) { string exitMessage = "EXIT state: " + state.ToString(); PostMessage(exitMessage); switch (state) { case GameStates.GameStateType.GamePlaying: OnMyStateExitGamePlaying(); break; case GameStates.GameStateType.GameWon: // do nothing break; case GameStates.GameStateType.GameLost: // do nothing break; } }
//--------- OnMyStateEnter[ S ] - state specific actions private void OnMyStateEnter(GameStates.GameStateType state) { string enterMessage = "ENTER state: " + state.ToString(); PostMessage(enterMessage); switch (state) { case GameStates.GameStateType.GamePlaying: OnMyStateEnterGamePlaying(); break; case GameStates.GameStateType.GameWon: // do nothing break; case GameStates.GameStateType.GameLost: // do nothing break; } }
void Start() { currentState = GameStates.GameStateType.GamePlaying; }