基本情報
- バックパック
- 紹介日
-
2020.2.9
コレ以外にも色々な弾幕の作り方はこちらにまとめてあります!
Scratchでの弾幕の作り方9選|東方みたいな弾幕シューティングを作る!
円形弾幕の基本的な作り方
所要時間: 10分.
n-way弾幕の応用です。単純にn-way弾幕の変数を調整するだけで作ることが出来ます。
- 変数を初期化する
「角度の変化」と「発射弾数」を掛けると360度になるように指定すると、円形に一斉発射ができます。
- 弾幕の本命処理を作る
弾幕を作る処理を、別途「緑の旗を押したら」ブロックを配置して作ります。
- 複数方向に発射する準備をする
発射弾数の数だけ弾を出したいので、「◯回繰り返す」ブロックでクローン生成処理を囲います。
また、1弾ずつ角度を変えることで別方向に飛ばしたいので、発射角度に「角度の変化」変数を加算していきます。 - 最後にメッセージを送る
発射弾数の数だけクローンを生成してから、メッセージを送ります。うずまき弾幕との最も大きな違いがここでしょう。メッセージを使わなければ、弾は一発ずつ微妙にずれて発射されます。n-way弾幕では一斉に射出する様が美しいので、射出タイミングにはこだわってメッセージ化しておきます。
- 毎回、発射角度を初期化する
次のループに備えて、発射角度を初期化します。ここでは添付画像のように変数を使って初期化していますが、単純に180度や−90度といった数値を手書きしても構いません。
tipsなぜ変数を使って初期化しているかと言うと、数値を直接書く方法では、発射角度を微調整するときに2箇所変更する必要があるからです。2箇所というのは、#01で最初に定義したところと、当ステップです。変更箇所が多ければ多いほど、バグの温床になります。うっかり変え忘れてしまうのです。こう言うと間抜けに聞こえますが、プログラミングで一番多いバグの原因が「うっかり」といっても過言ではありません。 - 発射のタイミングを調整する
ゼロ秒でもOKです。
- 弾幕の生成処理を作る
一斉発射に備えて、クローンの生成を終えておきます。ここで発射してしまうと、最初の弾と最後の弾で射出タイミングがズレてしまいます。
- 一斉発射の処理を作る
メッセージを受け取ったら、いざ発射です。しかし、「本体かどうか」変数を使って弾クローンだけが動くようにコードを組み合わせます。
ランダム円形弾幕を作る場合
ランダム円形弾幕を作るには、角度の変化をランダムにします。そのうえで「発射弾数」に、360を「角度の変化」で割った数を割り当てるところがミソです。
- バックパック
- 紹介日
-
2020.2.9