Scratchを使えば、敵の大群を倒しながらレベルアップしていく「ダダサバイバー風」のゲームを作れます。プレイヤーを動かし、敵をクローンで増やし、武器を自動発射する仕組みを組み合わせれば、シンプルながら遊び応えのある作品になります。
ただし、敵や弾を増やしすぎると、Scratchでは動作が重くなりやすい点に注意が必要です。この記事では、Scratch版ダダサバイバーの基本的な作り方、敵を増やす方法、レベルアップとスキル選択、軽量化のコツを紹介します。
スクラッチ版ダダサバイバーの作り方
最初は、プレイヤーを動かし、敵が近付き、自動攻撃で敵を倒せる状態を目指しましょう。その後にHP、経験値、レベルアップを追加すると、ゲームらしい流れが作れます。
プレイヤーを動かす
プレイヤースプライトには、矢印キーまたはWASDキーで動くスクリプトを作ります。画面端まで行きすぎないように、X座標とY座標の範囲を決めておくとよいでしょう。
例えば、右矢印キーが押されたらX座標を5ずつ変え、左矢印キーならマイナス5ずつ変える方法があります。上下の移動も同じ仕組みです。移動速度は変数にしておけば、レベルアップで速くするスキルも作れます。
敵を出現させる
敵スプライトは、最初に隠しておき、ゲーム開始後に一定時間ごとに自分自身のクローンを作ります。クローンされた敵は、画面の端にランダムで出現させ、プレイヤーに向かうように設定します。
敵の出現場所は、X座標またはY座標を画面外に設定すると作れます。例えば、X座標をマイナス250か250にして、Y座標を乱数で決めれば、左右から敵が現れる仕組みになります。
自動攻撃を作る
武器スプライトは、一定時間ごとにクローンを作り、プレイヤーの位置から発射するようにします。最初は、ランダムな方向へ飛ぶ弾や、近くの敵に向かう弾を作ると分かりやすいでしょう。
弾のクローンは、プレイヤーの位置へ移動してから表示し、向きを決めて何歩かずつ進みます。敵に触れたとき、または画面端に着いたときは、クローンを削除します。削除処理を入れないと弾が増え続け、ゲームが重くなる原因になります。
HPとゲームオーバーを設定
プレイヤーには「HP」変数を用意し、ゲーム開始時に100などの数値を設定します。敵のクローンがプレイヤーに触れたら、HPを1ずつ減らす仕組みにしましょう。
同じ敵が連続で触れ続けると、一瞬でHPが0になることがあります。敵が攻撃した後に少し待つ、またはプレイヤー側に無敵時間を作ると、遊びやすくなります。HPが0以下になったら、「ゲーム中」を0にしてゲームオーバー画面を表示します。
経験値とレベルアップを作る
敵を倒したら経験値アイテムを出すか、経験値を直接増やします。最初は、敵を倒すたびに経験値を1増やすだけでも構いません。経験値が必要な数値に達したら、レベルを1上げて経験値を0に戻します。
レベルアップするたびに、攻撃力、攻撃速度、移動速度、最大HPなどを強化できるようにすると、ダダサバイバー風のゲーム性が出ます。必要経験値をレベルに応じて増やせば、後半ほど成長に時間がかかるバランスも作れます。
敵を増やす仕組みの作り方
敵が増えるほどゲームは盛り上がりますが、Scratchではクローンの使い方が重要です。出現数、移動処理、削除処理を意識して作ると、重くなりにくくなります。
クローンで敵を増やす
敵スプライトに「ゲーム中が1の間、一定時間ごとに自分自身のクローンを作る」という処理を入れます。クローンされた敵には、HP、移動速度、攻撃力などを設定し、プレイヤーへ向かって動かします。
敵ごとに異なるHPを持たせる場合は、「敵HP」をこのスプライトのみの変数として作りましょう。変数を全スプライト共通にすると、1体の敵が受けたダメージで他の敵のHPまで変わることがあります。
時間ごとに敵を強くする
ゲーム開始からの時間を「経過時間」変数で数え、一定時間ごとに敵HPや敵の移動速度を上げる仕組みを作ります。例えば、30秒ごとに敵の基本HPを1増やし、出現間隔を少し短くすると、後半の難易度を高められます。
ただし、敵を強くしすぎると初心者には難しくなります。敵の数を増やす、HPを少し増やす、速度を少し上げるといった変化を1つずつ加え、実際に遊びながら調整しましょう。
ボスを出現させる
ボスは通常の敵とは別のスプライトとして作ると管理しやすくなります。経過時間が180秒になったらボスを出す、またはプレイヤーのレベルが10になったら出すなど、条件を決めましょう。
ボスには通常の敵より高いHPを設定し、ゆっくり近付く、一定時間ごとに突進する、周囲に小さな敵を出すなどの行動を追加できます。ボスを倒したら大量の経験値を与え、次のステージへ進む演出を入れると達成感が出ます。
武器やスキルを作る方法
武器とスキルを増やすと、プレイヤーごとに異なる成長ルートを楽しめます。最初は1種類の武器から始め、完成後に攻撃パターンを増やすと作業が進めやすいでしょう。
武器ごとに攻撃を変える
基本の武器として、プレイヤーからランダム方向へ弾を飛ばす「弾丸タイプ」を作りましょう。次に、プレイヤーの周囲を回る「回転刃タイプ」、近い敵へ向かう「追尾弾タイプ」、範囲内の敵にダメージを与える「衝撃波タイプ」などを追加できます。
武器ごとにスプライトを分けると、処理を整理しやすくなります。すべてを1つのスプライトに詰め込むより、「弾」「回転刃」「衝撃波」のように役割を分けたほうが、バグの原因を見つけやすいでしょう。
スキル選択を作る
レベルアップ時に3つの選択肢を表示し、1つを選ぶ仕組みを作るとゲーム性が上がります。選択肢はスプライトとして用意し、「攻撃力+1」「発射間隔を短縮」「移動速度+1」などの内容を表示します。
レベルアップしたらゲームを一時停止し、選択肢を表示します。プレイヤーが選択肢に触れる、または数字キーを押すと効果を適用し、選択肢を隠してゲームを再開する流れにすると分かりやすいでしょう。
レベルアップで強化する
攻撃力、弾の数、発射間隔、移動速度、最大HP、経験値の回収範囲などを変数にすると、レベルアップの効果を作りやすくなります。例えば、攻撃力の変数を1増やせば、弾が敵へ与えるダメージを増やせます。
同じスキルを複数回選べるようにすると、特定の武器を集中的に強化する遊び方もできます。スキルの種類が増えてきたら、ランダムに3つを表示する仕組みに挑戦してみましょう。
スクラッチ版ダダサバイバーを軽量化する方法
敵や弾が画面に増えるゲームでは、軽量化が大切です。Scratchではクローンが300体までに制限されているため、敵・弾・経験値アイテムを出し続けると、途中で新しいクローンが作れなくなることがあります。
クローンの数を減らす
敵や弾が画面外へ出たとき、倒されたとき、一定時間が経過したときには、必ずクローンを削除しましょう。経験値アイテムも、プレイヤーが取ったときや一定時間後に消えるようにします。
敵の最大数を変数で管理し、「敵の数が40未満ならクローンを作る」といった条件を加える方法もおすすめです。敵の数を少なくしても、移動速度や出現間隔を調整すれば、十分な緊張感を作れます。
不要な処理を止める
「ずっと」ブロックの中に多くの処理を入れると、クローンごとに同じ計算が繰り返されて重くなります。敵の移動、当たり判定、画面外チェックなど、本当に必要な処理だけに絞りましょう。
ゲームオーバーになったら「ゲーム中」を0にし、敵や弾のスクリプトが動かないようにします。停止後もクローンが動き続けると、画面上では変化がなくても処理が残ってしまいます。
当たり判定を簡単にする
弾が敵に触れたかを細かく判定する処理は、弾と敵が多いと負荷が大きくなります。最初は「武器に触れたら敵HPを減らす」という単純な判定から始めましょう。
敵が多い場合は、弾の当たり判定を毎フレーム行うのではなく、少し待ってから確認する方法もあります。見た目の滑らかさと動作の軽さのバランスを見ながら調整してください。
エフェクトを減らす
爆発、ダメージ数字、光、残像などのエフェクトを増やしすぎると、クローン数と処理量が増えます。特に、敵を倒すたびに複数の演出を出す仕組みは重くなりやすいでしょう。
エフェクトは、ボスを倒したときやレベルアップ時など、印象を強めたい場面だけに使うのがおすすめです。通常の敵を倒したときは、短いコスチューム切り替えや音だけでも十分に達成感を演出できます。
まとめ
Scratch版ダダサバイバーは、プレイヤー移動、敵のクローン、自動攻撃、HP、経験値、レベルアップを組み合わせることで作れます。まずは敵1種類、武器1種類、レベルアップ1種類の小さなゲームを完成させ、少しずつ機能を追加していくのがおすすめです。
敵や弾を増やすときは、画面外へ出たクローンや倒されたクローンを確実に削除し、最大数を管理しましょう。敵の出現数、武器の強化、スキル選択を工夫すれば、自分だけのサバイバルアクションゲームに仕上げられます。

