void ChangeState(int newState)
{
nextState = newState;
//Change the state
switch( nextState ) ///the change still will have a case for everything
{
case STATE_INTRO:
{
vec.pop_back();
state ptr(new CIntroState);
vec.push_back(ptr);
break;
}
case STATE_MENU:
{
vec.pop_back();
state ptr(new CMainMState);
vec.push_back(ptr);
break;
}
}
}
我有这个功能可以让我改变我的当前状态;然而,我想了想,当我完成时,这将是一个巨大的 switch 语句。目前,它已经有大约 10 个状态,这只是一些示例代码。我正在尝试做一些不同的事情,但我不知道该怎么做。
void ChangeState(something)
{
vec.pop_back();
state ptr(new something);
vec.push_back(ptr)
}
如果我能以这种方式带来它,我可以完全避免使用 switch 语句并获得相同的最终结果。有谁知道该怎么做?任何帮助将不胜感激。