nikeeshi のコーディング記

コーディングの成果をはっつけるとこ。このブログにあるソースコードはNYSL Version 0.9982に従い公開します(2014/06/18)。

コルーチンを使った状態遷移

前書き

読んでも何も得られません。 「難しいよ」ということしか書いてありません。

議題

ゲームの状態遷移をどう書くか

案1

状態をなんらかのデータで保持し、状態と入力の組から次の状態を返す関数をベースに記述する。 つまり、離散マルコフ過程のような書き方。 特に、ゲームスピードを変化させるときとかに、頭がこんがらがりそう。

案2

状態を継続としてみなすと都合がよい。 Unityではコルーチンで多フレームにまたがる処理を簡単に書ける。http://docs-jp.unity3d.com/Documentation/ScriptReference/MonoBehaviour.StartCoroutine.html 入力が多種類の場合、状態に関する処理は分割しにくい。

案3

各入力に対してコルーチンをinvokeする。わけが分からないよ。

状態遷移の三軸

入力別に処理をかき分けたい。

状態の情報別に処理をかき分けたい。

ゲームの処理は時間に対して縦割りしたい処理である。

これらの三つの軸に対して、モジュール分割をしたい。

結論

各入力同士の結びつきが弱く、

各状態情報の結びつきが弱く、

時間軸方向にまとまっているような

適切なモジュール分割をさがす。

あとがき

不満を並べたただの検索妨害記事を書いてすみませんでした。