はじめてゲームプログラミング 状態遷移図を作って整理する
状態遷移図って何?
前回、箇条書きで書き出した状態を覚えてる?
最後に書いたヤツの事かな?
その通り、あれを図にしたモノを状態遷移図と言うんだ!
簡単に、図にしてみるよ
5つの状態が、切り替わってるんだね
そう、今はこの5つの状態全てで球を判定する処理を入れているのでおかしくなっているんだ
キャッチ操作をしていないのに、キャッチして投げているんだね。
どうやって状態を管理するの?
状態の管理には、フラグノードンを利用するよ!
フラグをオンオフ切り替えて、今、どの状態か把握するんだ
フラグ操作ギミック
フラグノードンは、オン(1.0)とオフ(0.0)に切り替えて色々な状態を管理出来ます。
今回の場合、ボタンを押してから1秒後に状態が変わる事が多いので、そう言うギミックをあらかじめ作っておくと楽です。
色々なノードンの組み合わせで、フラグを操作してみよう
いくつか、ギミックを、備忘録として残しておきます。
ボタンを押してから1秒後にフラグを立てて、さらに1秒後にフラグを下ろすギミックを用意する
タイマーノードンを利用すると1秒後にフラグを立てて、さらに1秒後にフラグを下ろすという事が出来ます。
下のようにつなげれば、簡単に出来ます。
タイマーノードンの設定画面で、「出力し続ける秒数」を「1」に設定します。
これで、ボタンを押してから1秒後に、1.0に変化し、さらに1秒後に0.0に戻ります。これを利用して1秒間アニメーションを入れた後でフラグをオンして、その後の1秒間で別の演出を表示するといった事が出来ます。
ボタンを押してから、1秒間ボタンを押した事にするギミックを用意する(連打出来なくする)
連打を防止する為に、1回入力があったら「1秒間入力を受け付けない」そういうギミックがあれば、ボタン入力があったときに、投球モーションを入れる事が出来るようになります。
何だかややこしいなぁ・・・
このあたりは、実際につまった場合に、この備忘録を思い返してもらえれば良いです。
困って無ければ読み飛ばしてOKです。
タイマーノードンの設定画面は、このようにします。
これで、ボタンを押してからずっと押しっぱなしにしても一瞬で押すのをやめても、1秒間はボタンが押された状態にする事が出来ます。
備忘録として書いた方法以外でも、同じような組み方があるので色々試して下さい。自分のやり方にあった方法が1番です。
フラグがオンの時は、「○○する」・・・のような処理を入れれば、色んな事に使えるようになります。
長々とご清聴ありがとうございました。
ではでは、また。皆様のよいゲーム作りをお祈りしております。
コメント