コルーチンを使った状態遷移
前書き
読んでも何も得られません。 「難しいよ」ということしか書いてありません。
議題
ゲームの状態遷移をどう書くか
案1
状態をなんらかのデータで保持し、状態と入力の組から次の状態を返す関数をベースに記述する。 つまり、離散マルコフ過程のような書き方。 特に、ゲームスピードを変化させるときとかに、頭がこんがらがりそう。
案2
状態を継続としてみなすと都合がよい。 Unityではコルーチンで多フレームにまたがる処理を簡単に書ける。http://docs-jp.unity3d.com/Documentation/ScriptReference/MonoBehaviour.StartCoroutine.html 入力が多種類の場合、状態に関する処理は分割しにくい。
案3
各入力に対してコルーチンをinvokeする。わけが分からないよ。
状態遷移の三軸
入力別に処理をかき分けたい。
状態の情報別に処理をかき分けたい。
ゲームの処理は時間に対して縦割りしたい処理である。
これらの三つの軸に対して、モジュール分割をしたい。
結論
各入力同士の結びつきが弱く、
各状態情報の結びつきが弱く、
時間軸方向にまとまっているような
適切なモジュール分割をさがす。
あとがき
不満を並べたただの検索妨害記事を書いてすみませんでした。