洗濯機弾幕の作り方

洗濯機せんたくき弾幕だんまくつくかた

シューティングゲーム「怒首領蜂《どどんぱ》大往生《だいおうじょう》」でプレイヤーを恐怖に陥れた左右の回転を交互に繰り返す弾幕、それが洗濯機弾幕です。渦巻弾幕の1つとして作り方を紹介します。

  1. 緑の旗が押されたらブロック

    緑の旗が押されたら弾幕が出てくるようにします。ここを「スペースキーが押されたら」「◯◯メッセージを受け取ったら」に変えることで弾幕が出るようになります。

    緑の旗が押されたらブロック
    緑の旗が押されたらブロック

  2. 変数を初期化する

    弾幕では変数の微調整で動きをゲームに合わせていく作業が多発するので、変数は一箇所にまとめておくと便利です。
    また、一度決めてしまえばゲーム中に変化しないような数値も変数にまとめておくことで後々「この数値ってなんだっけ?」と混乱しないようにできます。
    ・弾の速度=1
    ・発射角度=180
    ・角度の変化=5
    ・発射弾数=72
    ・発射間隔(秒)=0
    ・回転数=2
    Scratchでは「定数」という概念はありませんが、一度定義したら変えない変数をプログラミングでは定数と呼んで重宝します。逆に、定数にすべきところをそのまま数字をベタ書きしているものはマジックナンバーと呼ばれ、嫌煙されています。Scratchでは特に気にする必要はありません。分かりやすい方法で実装してください。

    変数をまとめておく
    変数をまとめておく

  3. 改めて「緑の旗が押されたとき」を設置

    変数とは別にまとめておくと分かりやすいでしょう。
    角度、初期位置、初期コスチューム、初期大きさ、などを整えて表示するを選んでおきます。
    そして、弾幕処理を追加していくことになるループ「ずっと」ブロックを設置します。

    弾幕処理を開始する
    弾幕処理を開始する

  4. 何回転で左右を入れ替えるかを決める

    左に2回、右に2回、といった具合で回転の向きを変えます。これが洗濯機弾幕の所以ともなる動きです。回転数が少ないほうが避けるのが難しい弾幕と言えます。あまり難しいとプレイヤーのストレスが大きすぎるので注意。

    回転数を決める
    回転数を決める

  5. 渦巻状に発射する

    ここは渦巻弾幕と同じ処理です。クローンごとに発射角度を変えていきます。

    うずまき状に発射する
    うずまき状に発射する

  6. 回転方向を変える

    変数「角度の変化」にマイナス1をかけることで、プラスとマイナスを置き換えます。
    たとえば角度の変化が5(プラス)なら右回転・時計回りとなり、-5(マイナス)なら左回転・反時計回りとなります。

    角度の変化を逆転する
    角度の変化を逆転する

  7. 発射間隔を調整する

    ここはゼロ秒でもかまいません。渦巻弾幕を年輪のようにグルリ、グルリと展開する場合も、ここの数値が役立ちます。

    発射間隔の調整
    発射間隔の調整

  8. 「クローンされたとき」

    ここからは弾幕の「弾」の動きになります。

    だんまくとクローンは切っても 切りはなせない関係です
    だんまくとクローンは切っても 切りはなせない関係です

  9. クローン(=弾)の初期化処理を行う

    三角関数を使う場合はショットの向きは気にせずとも問題ありません。しかし今回は三角関数を使わない方法で実装します。同じような結果が出せるので、よりシンプルな実装と言えます。

    三角関数を使わずに作りたい ので、ショットの向きを変えておきます
    三角関数を使わずに作りたい ので、ショットの向きを変えておきます

  10. 弾のコスチュームにする

    どんな弾の形にするのか、というのも弾幕の楽しいところです。ただの円でもいいでしょう。ミサイルのようにしても、ビームのようにしても、特殊な形にしてもいいでしょう。リンゴを投げるような弾幕でも面白いでしょう。自分の考えるベストなコスチュームを模索しましょう。

    ショット用のコスチュームに変えます
    ショット用のコスチュームに変えます

  11. 弾を動かす

    弾幕の本質的な処理がここです。弾を動かします。ここでよく三角関数が使われます。三角関数を使わないほうがシンプルですし、弾がミサイルやビームのような形をしている場合は進行方向を向いて飛んでいくので、現実的です。弾が円形であれば、どちらでも見た目に差はありません。

    ※サンプル動画では、ここの数値は1です。

    三角関数を使っても使わなくてもOK、使わないほうがシンプル
    三角関数を使っても使わなくてもOK、使わないほうがシンプル

  12. クローンを削除する

    これが最も大事といっても過言ではありません。ちゃんとクローンを削除します。弾幕は大量のクローンが生成されるので、これを忘れるとプロジェクト自体が動かないくらいにメモリーを消費してしまいます。

    弾幕に使ったクローンを削除する
    弾幕に使ったクローンを削除する

補足ほそく情報じょうほう

紹介日
2020.2.8