참 웃기지 말야....
얼마전 면접 보면서 FSM이 뭔지 아냐고 물어봐서
난 모른다고 했는데....
다 내가 코딩하면서 쓰던 설계방법이라니 말야...ㅋ
팩토리 패턴이나 그외 패턴들도 그렇구....
너무 이론보다 코딩중심으로 공부를 해서 그런가...ㅋ
아무튼 다 집어치우고...
말 그대로 각각의 상태를 정의하는것..ㅋ
내가 쓰던 패턴대로 예제를 작성해 보겟슴ㅋ
enum PLAYER_STATE =
{
PSTATE_IDLE = 0,
PSTATE_MOVE,
PSTATE_WALK,
PSTATE_JUMP,
PSTATE_COUNT
}
class CPlayer
{
CPlayer() { m_nState = PSTATE_IDLE; }
PALYER_STATE m_nState;
PLAYER_STATE getState() { return m_nState; }
void setState(PLAYER_STATE nState) { m_nState = nState; }
..........
}
class CGameManager
{
CPlayer* pPlayer;
void onProcessing();
void onProcessIdle();
void onProcessMove();
void onProcessWalk();
void onProcessJump();
}
void OnProcessing()
{
switch(pPlayer->getState())
{
case PPLAYER_IDLE:
onProcessIdle();
break;
case PPLAYER_MOVE:
onProcessMove();
break;
case PPLAYER_WALK:
onProcessWalk();
break;
case PPLAYER_JUMP:
onProcessJump();
break;
}
대충 요런식? -_-ㅋ