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;
}
}
}
現在の状態を変更できるこの機能があります。しかし、私はそれについて考えました。これは、私が終了するまでに巨大なスイッチ ステートメントになるでしょう。現在、すでに約 10 の状態が含まれています。これは単なるサンプル コードです。少し違うことをしようとしていますが、どうすればいいのかわかりません。
void ChangeState(something)
{
vec.pop_back();
state ptr(new something);
vec.push_back(ptr)
}
このようにすることができれば、switch ステートメントの使用を完全に回避して、同じ最終結果を得ることができます。誰もこれについてどうやって行くのか知っていますか? どんな助けでも大歓迎です。