左上の変数のツマミで、 ・弾をクローンするプログラムを選択 ・クローンする機体の数 ・当たり判定の有無 を調整してからグリーンフラッグを押してください。 成功:正しい機体から出された弾の数 失敗:引き金を引いた機体とは別の機体から発射された弾の数 発射数の遅延:引き金を引いたのにまだ発射されていない弾の数 リストを見れば、何番目の弾が失敗したかなどの確認もできます。 詳細は下メモに記しています。 ※クローンの研究用でゲーム要素はほぼありません。人によってはあまり面白くないかもしれません。
シューティングゲームを作るとき、弾だけではなく機体、キャラクターの方もクローンにできたら、東方などのシューティングを作るときにムチャクチャ楽できる! そう思って色々いじっていたら、興味深いものができたので公開してみました。 中を見て頂いて参考にでもなれば幸いです。 ↓説明↓ 『「実行するプログラム」の説明』 説明下手なのでたぶんリミックスなどしてもらった方が良いと思います。暇な人は読んでみてください。 ざっくり説明すると、1は「一つの変数」、2は「一つのリスト」を用いてクローンの弾に発射命令を出しています。 両方とも、クローン機体が「これからクローンされる弾は俺から出ろ!俺のクローン番号はnだ!(このあたりの詳細は後述)」と命令しているのですが、複数の機体が同時に命令すると、変数だとクローンに認識される前に上書きされてしまいます。すると、引き金を引いたはずの機体とは別の機体から弾が出てしまうのです。これは困ります。 それをリストを用いて上書きしないようにしているのが2です。しかし、2は命令に一瞬だけ「待った!」をかけているので、その分射撃の実行に遅延が発生します。 遅延を取り戻せればよいのですが、あまりに機体の射撃数が多すぎると遅延はたまり続けます。 すると今度は「引き金を引いてもなかなか発射されない」という、これまた困った現象が起きるわけです。 ただ、2の方が、数が限度を越えなければまったくトラブルを起こさないので優秀といえます。1は機体数が少なくても確率で「失敗」を起こします。 『クローンの自己認識と詳細』 機体も弾も、『ブロックをつくる』機能で追加できる引数を用いて、それぞれのクローンに個体認識をさせています。 作ったブロックを「クローンされたとき」に付随させると、この引数はクローンごとに別々に保持されるので、クローンするたびに別々の引数を入れてやれば「俺はn番目にクローンされたクローンだぜ!」と自分を認識できるわけです。 あとはクローン機体が、自分が持っている引数を変数orリストに書き込んでからクローン弾を生成すれば、今度はクローン弾がその変数orリストの数値を自分の引数に取り込むわけです。 ただ、どうしても「クローン機体が自身の引数を変数orリストに入力→クローン弾を生成→クローン弾が変数orリストの数値を自分の引数に入力」の動作にタイムラグがあるので、媒介に使う変数orリストを、どちらにするかによって挙動が上述したように変わる。そんな感じです。 これをzero fighterに取り込めると良いのですが、もはや私にはアレがどう動いているのやら検討も尽きません。が、これで得た技術はRoar of Panzerで存分に活かされています。