自作ゲームの大福島

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

スポンサードリンク

CF2.5 for eachループと固有値の管理導入!

f:id:vobo:20151123225018j:plain

これは覗きではござらん!…断じて覗きではござらんぞぉぉぉっ!!

 

 

…さて、それはさておき、今日は自分の中で最高に高い壁であった、「ループ処理による複数オブジェクトの個別管理」を何とか実装出来ましたよ先生(*´ω`*)

 

粋がってややこしい書き方しちゃいましたが、ようはこんな処理です。

 

本体と当たり判定の二つのオブジェクトをペアにして動かしているキャラクターがあるとします。

CF2.5の仕様で、通常それを複製(コピー)しただけだと、複数の本体がコピー元の当たり判定だけをペアとして認識してしまい、片方の判定に連動して複数の本体が反応してしまい、個別に制御出来ないんですね。

 

で、それをループ無しで制御しようとすると、

①本体、判定二つのオブジェクトを「クローン」で増やす

②クローンしたオブジェクト同士の同期イベントを再度組み直す

 

*クローンしたオブジェクトは全く別のオブジェクトとして認識されるので個別制御が可能です。

 

というクッソめんどくさい作業が発生しちまうわけです。しかも一体増やす毎に…( ´_ゝ`) 

 

この当たりは実際作っている方には苦労を分かっていただけると思います…

何よりクローンで増やすとイベントエディタにもその分全く同じ動きのくせにオブジェクトが増えるわけで、良いことが何ひとつないという…

 

で、これを解決する(=コピーだけで同じ動きをするペアオブジェクトを量産する)為に必要だったのがfor reachループと固有値による管理だったわけです!

いや、数時間試行錯誤して調べ回りました…

 

まずはイベントエディタですが、こんな感じ。

f:id:vobo:20151129001314j:plain

 

何をしてるかというと、各本体の固有値(フレームに存在する、複製物も含めた全オブジェクトに別個に割り当てられる番号)を当たり判定の変数にぶち込んで、本体の固有値と変数が一致する当たり判定のみをペアとして認識させる。その作業をループ処理によって常時繰り返す、というものです。

 

…言葉にしても伝わらんですよね( ´_ゝ`) 

私もまだ全然使いこなすところまで行っていないので、もう少しループに慣れたらまた解説でもさせて頂こうかなと思います(*´ω`*)需要があればですが…

 

ともあれ、この処理をマスター出来ればアクションやシューティングに必要な要素の大部分はカバー出来たはず!ハイテンションで進めて参りますよー(⌒▽⌒)

f:id:vobo:20151129001532j:plain