こんにちは!コンじゃぶろーです!
袋麺で、焼きラーメンを作るのにハマってるコンじゃぶろーです。
たっぷりキャベツを入れれば経済的。しお、みそ、醤油、どの味付けも美味しいのでみなさんもぜひお試し下さい。
はじめてゲームプログラミング 「キャッチ」&「リリース」のギミックを作る【3回目】フラグコントロール サンプルと解説
今日は、フラグをコントロールするプログラムを作りました。
フラグをコントロールする?
フラグをコントロールすれば、キャラの行動を切り替えたり当たり判定を切り替えたり出来るんだ
ラスボスが、急に強くなったりするアレ?
そう!それ!
ゲームをもっと楽しいモノにする為に欠かせないギミックだよ!
サンプルプも公開したので参考にしてね!
ゲームをもっと楽しいモノにする為に欠かせないギミックだよ!
サンプルプも公開したので参考にしてね!
はじめてゲームプログラミング フラグ切り替えの仕様
実現したい状態の確認
前回で、作成した画面遷移図を見直そう
この5つの状態を表現するプログラムを作っていきます。
各状態に通し番号をつけよう
切り替える状態の種類は5つなので、下のように通し番号をつけます。
- 0:待機
- 1:キャッチスタート(キャッチ判定)
- 2:キャッチ
- 3:投げるモーション
- 4:投げる(発射)
どうして「0」から通し番号をつけるの?
いい所に気がついたね!
「0」にしてると便利な事があるんだ、今回の状態遷移は、円になってるよね?最後の状態から、最初の状態に戻す時に、「リセット」するだけで良くなるんだよ
ちょっと何言ってるか分かんない
便利だからって覚えておいたらいいよ!
もし、余力があれば、サンプルをフラグを「0〜4」→「1〜5」に変更してみると、良く分かるよ!
状態切り替わりの条件を考えよう
簡易的な条件を設定
状態が切り替わる時の条件を考えるよ!今回は、仕組みを分かりやすくする為に、Aボタンを押したら状態が切り替わる仕様にしたよ
- 状態「0」の時:Aボタンで、状態「1」に変更
- 状態「1」の時:Aボタンで、状態「2」に変更
- 状態「2」の時:Aボタンで、状態「3」に変更
- 状態「3」の時:Aボタンで、状態「4」に変更
- 状態「4」の時:Aボタンで、状態「0」に変更
補足説明
本当は、状態に応じて色んな遷移条件があるよ。今回の「キャッチ&リリース」であれば、こんな感じになるね。
- 状態「0」の時:ZRボタンで、状態「1」に変更。つかむアニメーションを表示。
- 状態「1」の時:球に触れたら、状態「2」に変更。球に触れれなかったら、状態「0」に変更
- 状態「2」の時:ZRボタンがリリースされたら、状態「3」に変更
- 状態「3」の時:1秒後(この1秒間で、投げるモーションを入れる)、球をワープで消す。状態「4」に変更
- 状態「4」の時:打ち出すノードンで球を打ち出す。状態「0」に変更
少し複雑だね。こういう複雑な状態を作る時は、まずシンプルな条件(Aボタンを押すだけ等)で組んで、テストしてから組み込むようにしよう。
さて、これから実際にサンプルプログラムの解説に入るけれど、もし、プログラムの読解力がある人は、サンプルプログラムを先に見て触ってみてね
人のプログラムを、読み解く力はとっても必要な技術なので、解説前に理解してみる事をお勧めします。
はじめてゲームプログラミング フラグ切り替えプログラミング解説
さぁ、解説を始めるよ!
数字が、6つ並んでるね。左からフラグを管理する為のカウンターと、A〜Eのフラグを数ノードンで表示してるよ。
Aボタンを押す度に、カウンターが1ずつ増えて、A〜Eのフラグが「00」から「01」に切り替わっているのが分かるね。
構成
サンプルのプログラムは、大きく分けて2つの機能で出来ています。
- フラグの切り替え(条件判定)
- フラグに応じたアクション処理
こんな感じで、「フラグを切り替える」と、「フラグに合わせてアクションする」は、分けて組み上げていくよ
一緒に書いたらいいじゃん
分けた方が、分かりやすくなるよ
一度に2つ以上の事をすると、格段に複雑になっちゃうんだ
これも、サンプルと同じ機能を、分けずに組み上げてみたらすぐ分かるよ
はじめてゲームプログラミング フラグ切り替え(条件判定)
今回のサンプルでは、切り替わり条件はAボタンを押すだけなので、とてもシンプルだよ。
Aボタンを押すと、押した瞬間だけカウンターノードンが1増えるよ
カウンターノードンの値を見て、フラグを切り替えているんだ。
カウンターが「0」の時は、フラグノードンをオンにして、「プログラム整理ノードン」を使って「A」へ飛ばすよ。
プログラム整理の「出口」を使って、後で、各状態のアクション処理をするよ
ここにアクションを書けば、別に分けなくてもいいんだね
その通り!既に、ノードンが多いからアクション処理が増えると、すぐこんがらがりそうだね。
フラグを立てた時は、他のフラグをオフする為に、フラグオフに線を引っ張っているよ
線が沢山あってややこしく見えるけれど、やっている事はシンプル。
フラグを立てたら、他のフラグを全て下ろすって事
はじめてゲームプログラミング フラグに応じたアクション処理
フラグの切り替えの次は、フラグに応じたアクション処理の解説に入るよ
出口ノードンからの値を見て「1.0」と「同じ価」であれば、人ノードンのアクションの値を切り替えているよ。
何か、アニメーションさせたり特別な動作をさせたい場合は、左側の出口ノードンの比較の後に、プログラムすれば、そのとおりに動くよ。
以上で、解説は終わりだよ!もし、分かりづらい部分があったりしたらTwitterか問い合わせから質問もらえると助かります!
長々とご清聴ありがとうございました。
ではでは、また。皆様のよいゲーム作りをお祈りしております。
コメント