円形弾幕の作り方

円形えんけい弾幕だんまくつくかた

基本きほん情報じょうほう

紹介日
2020.2.9

コレ以外にも色々な弾幕の作り方はこちらにまとめてあります!

Scratchでの弾幕の作り方9選|東方みたいな弾幕シューティングを作る!

円形弾幕の基本的な作り方

所要時間: 10分.

n-way弾幕の応用です。単純にn-way弾幕の変数を調整するだけで作ることが出来ます。

  1. 変数を初期化する

    「角度の変化」と「発射弾数」を掛けると360度になるように指定すると、円形に一斉発射ができます。

    円形に弾幕を張るための変数の初期化
    円形に弾幕を張るための変数の初期化

  2. 弾幕の本命処理を作る

    弾幕を作る処理を、別途「緑の旗を押したら」ブロックを配置して作ります。

    弾幕の本命処理
    弾幕の本命処理

  3. 複数方向に発射する準備をする

    発射弾数の数だけ弾を出したいので、「◯回繰り返す」ブロックでクローン生成処理を囲います。
    また、1弾ずつ角度を変えることで別方向に飛ばしたいので、発射角度に「角度の変化」変数を加算していきます。

    n-wayに対してクローン生成
    n-wayに対してクローン生成

  4. 最後にメッセージを送る

    発射弾数の数だけクローンを生成してから、メッセージを送ります。うずまき弾幕との最も大きな違いがここでしょう。メッセージを使わなければ、弾は一発ずつ微妙にずれて発射されます。n-way弾幕では一斉に射出する様が美しいので、射出タイミングにはこだわってメッセージ化しておきます。

    タイミングを合わせるべくイベントを使う
    タイミングを合わせるべくイベントを使う

  5. 毎回、発射角度を初期化する

    次のループに備えて、発射角度を初期化します。ここでは添付画像のように変数を使って初期化していますが、単純に180度や−90度といった数値を手書きしても構いません。
    発射角度を初期化

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

  6. 発射のタイミングを調整する

    ゼロ秒でもOKです。

    タイミング調整
    タイミング調整

  7. 弾幕の生成処理を作る

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

    ショットの処理、でも動かさない、生成するだけ
    ショットの処理、でも動かさない、生成するだけ

  8. 一斉発射の処理を作る

    メッセージを受け取ったら、いざ発射です。しかし、「本体かどうか」変数を使って弾クローンだけが動くようにコードを組み合わせます。

    イベントに合わせて足並みを揃えて一斉に発射する
    イベントに合わせて足並みを揃えて一斉に発射する

ランダム円形弾幕を作る場合

ランダム円形弾幕を作るには、角度の変化をランダムにします。そのうえで「発射弾数」に、360を「角度の変化」で割った数を割り当てるところがミソです。

ランダムに角度の変化を変えることで弾幕を変える
ランダムに角度の変化を変えることで弾幕を変える
紹介日
2020.2.9