- 1. スクラッチで順次処理を学ぼう!ネコを左右に動かすアニメーションの作り方【初心者向け】
- 2. スクラッチでネコが正方形に動くアニメーションの作り方|座標と向きの使い方
- 3. スクラッチでネコが左右にスケートするアニメーションの作り方|繰り返しの使い方
- 4. スクラッチでネコが走るアニメーションの作り方|コスチューム切り替えの使い方
- 5. スクラッチでネコがランダムな速さで走るアニメーションの作り方|乱数の使い方
- 6. スクラッチでロケットを矢印キーで動かす作り方|条件分岐の使い方
- 7. スクラッチで重力ゲームの作り方|もし〜なら・でなければブロック入門
- 8. スクラッチでスプライト同士がメッセージを送り合う作り方|みんなであいさつ
- 9. スクラッチでキャラが順番に集合するアニメの作り方|みんな集合
- 10. スクラッチで分裂するネコのアートの作り方【クローン入門】
- 11. スクラッチでネコの分身を飛ばす作り方【クローン入門】
- 12. スクラッチで音付きアニメーション!2台の車が走り抜ける作り方
- 13. スクラッチでペン拡張機能のスタンプを使った星のランダムアートの作り方
- 14. スクラッチのペン拡張機能を使って正三角形を描く方法と外角の仕組みを解説
- 15. スクラッチで足し算プログラムの作り方【変数と聞いて待つブロック入門】
- 16. スクラッチでサイコロシミュレーターの作り方│乱数とリストを使いこなそう
- 17. スクラッチでリスト操作11種類を完全マスターする作り方|宇宙船クルー名簿チュートリアル
- 18. スクラッチでペンとブロック定義を使った三角形・四角形の描き方
- 19. スクラッチでリンゴキャッチゲームの作り方!矢印キーとタイマーのアクションゲーム
- 20. スクラッチでネコ追跡ゲームの作り方|マウスで逃げ切る30秒サバイバル
- 21. スクラッチで攻撃シューティングゲームの作り方|クローンと確率でバトル設計 (いまここ)
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
- 矢印キーでエースを左右に動かす
- スペースキーで攻撃を発射してモンスターを攻撃する
- モンスターが縮むほど反撃が激しくなり、大きさ9%未満でゲームクリア
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1エースの初期設定
準備
スプライト「エース」を開く
エース| スプライトについて |
|---|
| プレイヤーが操作する攻撃使いキャラクター。左右の矢印キーで移動し、スペースキーでエースの攻撃を発動する。 |
| どんな役割か |
| エースっていうキャラを動かせるようにするよ!矢印キーで左右に動けて、スペースを押したら攻撃が出るようにするんだ。効果音やBGMもつけていくよ! |
実装
まずは旗が押されたときの初期設定。大きさを ( ) %にするで大きさを30%にして向きを90度(右向き)に合わせたら、x座標0・y座標-130の位置に配置するよ。画面の下のほうにエースがスタンバイする形になるんだ。
#2左右の移動
ずっとの中で、右向き矢印キーが押されたらx座標を10ずつ増やし、左向き矢印キーが押されたら10ずつ減らすよ。もし ( ) ならを2つ並べて、それぞれのキー入力をチェックする仕組みだね。
#3攻撃の発射
準備
メッセージ「エースの攻撃発動」を追加
エースがスペースキーを押したときに送信するメッセージ。MagicBallにエースの攻撃の弾を生成させる。
実装
次はスペースキーでエースの攻撃を発射するトリガーだ。別の が押されたときから始まる新しいスクリプトとして作るよ。
スペースキーが押されたら「エースの攻撃発動」メッセージを( ) を送るで送信するんだ。ポイントは( ) まで待つで、スペースキーが離されるまで待つこと。長押ししても1発だけ撃てる仕組みにしてるよ。
移動処理と別のスクリプトにしている理由は、同じ「ずっと」ブロックに入れちゃうと、「〜まで待つ」が左右の動きまで止めちゃうから。この「処理の分離」はゲーム制作でめちゃくちゃ大事な考え方なんだ。
#4攻撃の準備
準備
スプライト「攻撃」を開く
| スプライトについて |
|---|
| エースの攻撃とモンスターの攻撃の弾として使われるクローンスプライト。ball_typeに応じて色やサイズが変わり、端や他スプライトに当たると消える。 |
| どんな役割か |
| 攻撃の弾を作るよ!エースの攻撃とモンスターの攻撃の2種類があって、クローン機能を使って複数の弾を同時に飛ばせるようにしていくよ。 |
変数「球の種類」を追加
クローンが何の攻撃の弾かを識別する変数。「なし」「エースの攻撃」「モンスターの攻撃」のいずれかが入る。
実装
旗が押されたら「球の種類」変数を「なし」にして、スプライトを隠す。この攻撃は本体が画面に出ず、クローンだけを作り出す「工場」の役割なんだ。
#5クローンの動き
クローンされたときでクローンを表示して、ずっとの中で( ) 歩動かすを使い10歩ずつ進む。これだけでクローンが生成された向きにまっすぐ飛んでいくんだ。
#6クローンの消滅
画面の端に触れたとき、エースに触れたとき、モンスターに触れたとき──この3つの条件を( ) または ( )でまとめて判定するんだ。どれか1つでも当てはまったら0.1秒待ってからクローンを削除するよ。少し待つのは、衝突した瞬間を相手側が検知するための猶予だね。
#7攻撃のガード
最初に「球の種類」変数が「なし」と等しくなかったら、 でこのスクリプトを止める。これはクローンにメッセージが伝わるのを防ぐガードなんだ。メッセージって親スプライトだけじゃなくてクローン全員にも届いちゃうからね。
ガードを通過したら「球の種類」を「エースの攻撃」にセットする。
#8エースの攻撃の生成
「色」の効果を100にして見た目を変え、大きさを50%にしたら、向きを0度(真上)にセット。( ) の ( )でエースのx座標を取得して、そこからy座標-90の位置にワープするんだ。エースの少し上から弾がスポーンする形だね。
最後に( ) のクローンを作るでクローンを作ったら、「球の種類」を「なし」に戻す。この「使ったら元に戻す」がガードと連動していて、次のメッセージを受けられる状態にリセットしてるよ。
#9モンスターの初期化
準備
スプライト「モンスター」を開く
| スプライトについて |
|---|
| 左右に動き回る敵キャラクター。攻撃の弾に当たるたびに縮み、十分に小さくなるとゲームクリアになる。 |
| どんな役割か |
| モンスターの動きを作るよ!左右にランダムに動いて、攻撃の弾が当たったら縮んでいくようにするんだ。倒したらゲームクリア! |
変数「移動方向」を追加
モンスターの横移動の方向を表す変数。1で右方向、-1で左方向に動く。
実装
旗が押されたら「移動方向」変数を1にセットして、画像効果をクリア、大きさを100%にする。「移動方向」は1なら右、-1なら左。掛け算ひとつで方向を反転できる、シンプルだけど便利な仕組みだよ。
#10モンスターの移動
表示して向きを右向きにし、x座標0・y座標60に配置する。ずっとの中で、1〜10のランダムな数に「移動方向」を掛けた値だけx座標を変えるんだ。ランダムが入ることで動きに予測しにくいゆらぎが出る。
#11方向転換
( ) に触れたで端に触れたかチェック。触れていたら「移動方向」に-1を掛けた値をセットするんだ。1なら-1に、-1なら1に。変数に-1を掛けるだけで方向が反転するのは、ゲーム制作でよく使われるテクニックだよ。

画面端でハマってしまうバグはこれで直る。画面端で最大の移動幅である10の分だけ逆方向に移動させればOK、っていう理屈。
#12被弾の音と色
新しい が押されたときスクリプトでずっとループを回して、攻撃に触れたら効果音「Croak」を鳴らし、「色」の効果を25ずつ変える。色がコロコロ変わることで「ダメージを受けた!」ってのがひと目でわかるね。
#13縮小とノックバック
大きさを-10ずつ、y座標を10ずつ変えたら1秒待つ。当たるたびにどんどん小さくなっていくんだ。
#14ゲームクリア
まず でスプライトの他のスクリプトを止めてから、「Ya」を鳴らしてモンスターを隠す。そのあと「Win」の効果音を最後まで再生して、すべてを止めてゲーム終了だ。
他のスクリプトを先に止めるのは、勝利演出中にモンスターがまだ動いたり被弾処理が走ったりするのを防ぐため。この「先に止めてから演出」の順番が大事なんだ。
#15反撃の仕組み
準備
メッセージ「モンスターの攻撃発動」を追加
モンスターがランダムなタイミングで送信するメッセージ。MagicBallにモンスターの攻撃の弾を生成させる。
実装
新しいスクリプトで、1〜10のランダムな数がモンスターの大きさ÷10より大きいとき、「モンスターの攻撃発動」メッセージを送信して1秒待つ。
#16モンスターの攻撃ガード
準備
スプライト「攻撃」を開く
実装
「モンスターの攻撃発動」メッセージを受け取ったときの処理は、エースの攻撃のときと同じ構造だよ。「球の種類」が「なし」じゃなければスクリプトを止めるガードを入れて、通過したら「モンスターの攻撃」にセットする。同じガードパターンの使い回しだね。
#17モンスターの攻撃の見た目
「色」の効果を0にして元の色に戻し、大きさは「100からモンスターの大きさを引いた値」にセット。モンスターが縮んでるほど弾は大きくなるってこと。向きは180度(真下)で、エースに向かって降ってくるんだ。
( ) の ( )でモンスターの大きさをリアルタイムに取得してるのがミソ。追い詰めるほど大きくてヤバい弾が降ってくるから、プレイヤーは油断できないわけ。
#18モンスターの攻撃の生成
x座標は-255〜255のランダム、y座標はモンスターのy座標から90引いた位置に移動して、( ) のクローンを作るでクローンを作る。ランダムなx座標から降ってくるから、どこに落ちるか予測できないスリルがあるよ。
最後に「球の種類」を「なし」に戻してリセット完了。エースの攻撃と同じパターンだね。
#19BGMのループ
準備
スプライト「エース」を開く

実装
ずっとの中に終わるまで ( ) の音を鳴らすを入れるよ。「Video Game 1」が最後まで再生されたらすぐ頭から再び鳴り出す、無限ループBGMの完成だね。
#20エースの被弾演出
攻撃に触れたら( ) の効果を ( ) にするで「色」の効果を25にセットして、1秒後に画像効果をクリア。ダメージを受けたことが一瞬の色変化でわかる仕組みだ。
これでゲームの全機能が揃ったよ!エースが攻撃を撃ち、モンスターが縮みながら反撃してくる、スリリングな攻撃バトルの完成。次回もまた新しいゲームを作っていくから、お楽しみに!
まとめ
クローンで2種類の弾を使い分けるパターン、面白かったでしょ?1つのスプライトと変数だけで複数タイプを管理できるって、めちゃ応用の利く考え方だよ。モンスターの反撃ロジックも、変数と確率を組み合わせたシンプルな仕組みなのに緊張感があって最高。ぜひアレンジして、自分だけの攻撃シューティングを作ってみて!