基本情報
- バックパック
 - 紹介日
 - 
                    2020.2.9
 
コレ以外にも色々な弾幕の作り方はこちらにまとめてあります!
Scratchでの弾幕の作り方9選|東方みたいな弾幕シューティングを作る!
円形弾幕の基本的な作り方
所要時間: 10分
n-way弾幕の応用です。単純にn-way弾幕の変数を調整するだけで作ることが出来ます。
- 変数を初期化する 
「角度の変化」と「発射弾数」を掛けると360度になるように指定すると、円形に一斉発射ができます。

円形に弾幕を張るための変数の初期化  - 弾幕の本命処理を作る 
弾幕を作る処理を、別途「緑の旗を押したら」ブロックを配置して作ります。

弾幕の本命処理  - 複数方向に発射する準備をする 
発射弾数の数だけ弾を出したいので、「◯回繰り返す」ブロックでクローン生成処理を囲います。
また、1弾ずつ角度を変えることで別方向に飛ばしたいので、発射角度に「角度の変化」変数を加算していきます。
n-wayに対してクローン生成  - 最後にメッセージを送る 
発射弾数の数だけクローンを生成してから、メッセージを送ります。うずまき弾幕との最も大きな違いがここでしょう。メッセージを使わなければ、弾は一発ずつ微妙にずれて発射されます。n-way弾幕では一斉に射出する様が美しいので、射出タイミングにはこだわってメッセージ化しておきます。

タイミングを合わせるべくイベントを使う  - 毎回、発射角度を初期化する 
次のループに備えて、発射角度を初期化します。ここでは添付画像のように変数を使って初期化していますが、単純に180度や−90度といった数値を手書きしても構いません。

 tips
なぜ変数を使って初期化しているかと言うと、数値を直接書く方法では、発射角度を微調整するときに2箇所変更する必要があるからです。2箇所というのは、#01で最初に定義したところと、当ステップです。変更箇所が多ければ多いほど、バグの温床になります。うっかり変え忘れてしまうのです。こう言うと間抜けに聞こえますが、プログラミングで一番多いバグの原因が「うっかり」といっても過言ではありません。 - 発射のタイミングを調整する 
ゼロ秒でもOKです。

タイミング調整  - 弾幕の生成処理を作る 
一斉発射に備えて、クローンの生成を終えておきます。ここで発射してしまうと、最初の弾と最後の弾で射出タイミングがズレてしまいます。

ショットの処理、でも動かさない、生成するだけ  - 一斉発射の処理を作る 
メッセージを受け取ったら、いざ発射です。しかし、「本体かどうか」変数を使って弾クローンだけが動くようにコードを組み合わせます。

イベントに合わせて足並みを揃えて一斉に発射する  
ランダム円形弾幕を作る場合
ランダム円形弾幕を作るには、角度の変化をランダムにします。そのうえで「発射弾数」に、360を「角度の変化」で割った数を割り当てるところがミソです。

- バックパック
 - 紹介日
 - 
                    2020.2.9