クラスベースの FSM を初めて使用していますが、初期状態を設定するためのベスト プラクティスについて少し混乱しています。
Screen
(主に) 遷移を処理するために使用するクラスにFSM を追加しました。伝統的に、私は次のようなことをします:
function update(frameTime : Number) : void
{
switch(_currentState)
{
case STATE_TRANSITIONING_IN:
slideTheButtonsIn();
if(buttonsInPlace == true)
changeState(STATE_ACTIVE);
break;
case STATE_ACTIVE:
if(buttonClicked() == true)
changeState(STATE_TRANSITIONING_OUT)
break;
case STATE_TRANSITIONING_OUT:
slideButtonsOut();
if(buttonsInPlace == true)
removeThisScreen();
break;
}
}
かなり標準的な方法だと思います。
新しい状態に関する私の問題は、画面上のすべてのオブジェクトを作成する責任があるのは誰ですか? Screen
すべてのボタンなどを作成してからMainMenuTransitionInState
クラスに渡す必要がありますか、それともMainMenuTransitionState
クラスでボタンを作成してから渡す必要がありますか、それともマークを完全に逃したのでしょうか?
ここであなたの賢明なアドバイスに感謝します。ありがとう!