自作ゲームの大福島

プログラムの使えない素人がCF2.5(インディゲームクリエーター)を使ってゲームを作ってみるブログです

スポンサードリンク

イベントグループの活用方法

f:id:vobo:20160229232819j:plain

ふむ…どっちが頭か分かるでござるかな?

 

ここ数日の記事だけ見ると

猫ブログにしか見えなくなっている気がするので、今日はゲームの話をメインで。

 

今日はイベントグループの話です。

f:id:vobo:20160229235741j:plain

ある程度触っている方はお馴染みのイベントグループ。

上の画像だと「ペナルティ」「アクション」とある、各イベント行を括っている部分ですね。

今まではこのイベントグループはただ見やすくする為だけに使っていたのですが、こいつを使えば簡単に動作の指定を出来る事に気づきました。

  

 

f:id:vobo:20160229235651j:plain

 試しにこんな画面を作ってみます。

人型が主人公。左右移動が出来ます。

右のスライムさんは左右、或いは重力を無視して上下に移動する二つの行動パターンを設定しています。

f:id:vobo:20160305002317j:plain

上がスライムさんの行動を制御するプログラムです。

分かりにくいですが、イベントグループ「ペナルティ」に含まれる「動作1」は左右移動をアホのように繰り返す行動パターンです。

対して、グループ「アクション」に含まれる「動作2」は上下移動をひたすら繰り返す気の触れた行動パターンです。

 

で、イベント行の⑧~⑩で、それぞれ

・フレーム開始時点の行動

・キーボードのCキーを押した時の行動

・キーボードのXキーを押した時の行動

をそれぞれ制御しています。

 

次に、両イベントグループの中身を見てみます。

 

「ペナルティ」に含まれる内容は、

・左右移動をひたすら繰り返すように行動をチェンジ。

・主人公と衝突すると、主人公は死ぬよ

 

「アクション」に含まれる内容は、

・上下移動をひたすら繰り返すように行動をチェンジ。

 

という内容です。「ペナルティ」にのみ、スライムとの当たり判定を設定しています。

で、このイベント内容でゲームを実行するとどうなるか、という事ですが、

イベント行⑧で、フレーム開始時点では「ペナルティ」の内容を反映していますので、ゲーム開始時点ではスライムさんは左右移動を繰り返しています。

主人公と接触すると、哀れ、主人公は即死します。

 

フレーム開始後、Cキーを押すと、「ペナルティ」に含まれる内容は無視され、「アクション」に含まれる内容に切り替わります。

つまり、左右移動を止め、Cキーを押した時点から上下運動に切り替わるわけです。

そして、「アクション」には主人公との接触を判定するイベントを記述していませんから、主人公とスライムさんが接触しても主人公は死にません。

行動だけでなく、接触判定に関してもきっちりと内容が判定されています。

 

いかがでしょうか?このイベントグループを使った制御方法の利点は、

フラグや変数を使わずに行動を切り替えられる事

にあると思います。

ゲームを作りこんでいくと、どうしても無駄に変数やフラグの種類が多くなっていき、管理が出来なくなりがちですが、この方法ならグループ名を工夫してやれば、視覚的にも分かりやすく管理出来るんではないでしょうか。

と、今日はこんなところで。

御閲覧ありがとうございました。