- 1. スクラッチで順次処理を学ぼう!ネコを左右に動かすアニメーションの作り方【初心者向け】
- 2. スクラッチでネコが正方形に動くアニメーションの作り方|座標と向きの使い方
- 3. スクラッチでネコが左右にスケートするアニメーションの作り方|繰り返しの使い方
- 4. スクラッチでネコが走るアニメーションの作り方|コスチューム切り替えの使い方
- 5. スクラッチでネコがランダムな速さで走るアニメーションの作り方|乱数の使い方
- 6. スクラッチでロケットを矢印キーで動かす作り方|条件分岐の使い方
- 7. スクラッチで重力ゲームの作り方|もし〜なら・でなければブロック入門
- 8. スクラッチでスプライト同士がメッセージを送り合う作り方|みんなであいさつ
- 9. スクラッチでキャラが順番に集合するアニメの作り方|みんな集合
- 10. スクラッチで分裂するネコのアートの作り方【クローン入門】
- 11. スクラッチでネコの分身を飛ばす作り方【クローン入門】
- 12. スクラッチで音付きアニメーション!2台の車が走り抜ける作り方
- 13. スクラッチでペン拡張機能のスタンプを使った星のランダムアートの作り方
- 14. スクラッチのペン拡張機能を使って正三角形を描く方法と外角の仕組みを解説
- 15. スクラッチで足し算プログラムの作り方【変数と聞いて待つブロック入門】
- 16. スクラッチでサイコロシミュレーターの作り方│乱数とリストを使いこなそう
- 17. スクラッチでリスト操作11種類を完全マスターする作り方|宇宙船クルー名簿チュートリアル
- 18. スクラッチでペンとブロック定義を使った三角形・四角形の描き方
- 19. スクラッチでリンゴキャッチゲームの作り方!矢印キーとタイマーのアクションゲーム
- 20. スクラッチでネコ追跡ゲームの作り方|マウスで逃げ切る30秒サバイバル
- 21. スクラッチで攻撃シューティングゲームの作り方|クローンと確率でバトル設計
- 22. スクラッチで5秒ぴったり当てゲームの作り方|タイマーと入れ子条件分岐を学ぼう
- 23. スクラッチでカスタムブロック(関数)の作り方|足し算・引き算ツール入門
- 24. スクラッチで宇宙シューティングゲームの作り方|スコアで激化する難易度システム
- 25. スクラッチで全方向シューティングゲームを作ろう!魔法少女とスライム迎撃バトル (いまここ)
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1魔法少女の移動①
準備
スプライト「魔法少女」を開く
| スプライトについて |
|---|
| プレイヤーが操作する魔法少女。矢印キーまたはWASDで移動し、マウス方向を向く。スペースキーまたはクリックで魔法弾を発射する。魔力が尽きるとゲームオーバー。 |
| どんな役割か |
| プレイヤーキャラの魔法少女を作ろう!キーボードで動かして、スペースやクリックで魔法弾をバンバン飛ばすよ。魔力がなくなったらゲームオーバーだから、スライムにぶつかりすぎちゃダメだよ! |
実装
まず魔法少女の初期設定から。大きさを ( ) %にするでサイズを40%にして、x座標を ( ) 、y座標を ( ) にするで画面下部の(0, -140)に配置するんだ。
ずっとループの中で、マウスのポインターに向き続ける処理と移動する処理を入れていく。マウスで照準を合わせながらキーボードで移動する、いわゆるツインスティック操作みたいだね。
#2移動の追加
矢印とW A S Dで移動する処理を追加。y座標を ( ) ずつ変えるにマイナスの値を入れると下に動くし、x座標を ( ) ずつ変えるにプラスの値で右に動く仕組みなんだ。
( ) または ( )で2つのキー判定をまとめてるから、どっちのキーを使ってもOKだよ。値を変えるだけでスピード調整もカンタンだよね。
#3歩行アニメーション
動きに合わせてコスチュームが切り替わるアニメーションを付けよう。別の が押されたときからスタートする新しいスクリプトを作るよ。
ずっとの中で次のコスチュームにすると0.2秒の待機を繰り返す。0.2秒間隔だから、1秒で5コマ切り替わる計算で、ゲーム中ずっとパタパタ歩いてるように見えるんだよ。
#4スコアと魔力の準備
準備
変数「■倒した数」を追加
倒したスライムの総数。スコアとしても使用され、スライムの出現速度にも影響する
変数「■魔力」を追加
プレイヤーの魔力残量。スライムに触れると減少し、0になるとゲームオーバー
実装
「■倒した数」を0に、「■魔力」を10にセット。変数 ( ) を表示するで「■倒した数」をステージに表示するよ。魔力は10からスタートして、敵に当たるたびに減っていくんだ。
#5ゲームオーバー判定
準備
スプライト「大スライム」を開く
実装
ゲームオーバーの判定を作っていく。ずっとで常時チェックして、魔力が1未満になったら「魔力切れ!」と1秒間言ってから全停止させる。
ここで( ) < ( )で「■魔力 < 1」と判定しているのがポイント。大スライムに当たると魔力が一度に3減るから、10→7→4→1→-2みたいにマイナスになる場合があるんだよ。
「= 0」だと-2のときに引っかからないけど、「< 1」なら確実にキャッチできるってこと。だから「< 1」にしておくのが安全だよ。
#6BGMの追加
ずっとの中で終わるまで ( ) の音を鳴らすを使って「Dance Magic」をループ再生する。
#7大スライムの初期設定
準備
スプライト「大スライム」を開く
| スプライトについて |
|---|
| 上から落下してくる大型の敵スライム。プレイヤーに触れると魔力を3減らす。魔法弾が当たると明滅エフェクトで反応するが倒せない。 |
| どんな役割か |
| 上からゆっくり降ってくる大スライムを作るよ!プレイヤーに当たると魔力がどんどん減る強敵だよ。魔法弾が当たるとぴかっと光るエフェクトも付けよう! |
実装
旗クリックでサイズを100%にして、画像効果をなくすで画像効果をリセット。初期位置はx座標を-230〜230のランダム、y座標は130固定で、画面上部のどこかからスタートするんだ。
#8大スライムの移動
大スライムを表示して、ゆっくり落ちてくる動きを作るよ。ずっとの中でy座標を-3ずつ変えると、毎フレーム少しずつ下に降りてくるんだよ。
#9衝突ダメージとリスポーン
準備
スプライト「大スライム」を開く
実装
端に触れた場合も同じくランダム位置にリスポーン。x座標を ( ) 、y座標を ( ) にするで-230〜230のランダムなx座標、y座標は130に戻す。大スライムは何度でも上から降ってくるエンドレス仕様だよ。
#10魔法弾の初期設定
準備
スプライト「魔法弾」を開く
| スプライトについて |
|---|
| プレイヤーが発射する魔法弾。スペースキーまたはマウスクリックでクローンが生成され、マウスの方向へ直進する。スライムに当たると消えて倒した数を1増やす。 |
| どんな役割か |
| プレイヤーが撃つ魔法弾を作るよ!スペースかクリックで弾がポンポン飛んでいく仕組みを作ろう。スライムに当たったら消えて、倒した数がカウントされるようにするよ! |
実装
旗クリックで隠すして非表示にして、サイズを20%に設定。本体は「設計図」として画面に出さず、クローンだけが実際に飛んでいく仕組みなんだよ。
#11魔法弾の発射
準備
スプライト「魔法少女」を開く
実装
もし ( ) ならの中で( ) のクローンを作るを使って魔法弾のクローンを作り、直後に0.25秒の待機を入れる。この待機が連射間隔の制限になっていて、0.25秒より短い間隔では撃てない。数値を小さくすれば、マシンガンみたいな連射も可能だよ。
#12魔法弾の飛翔
準備
スプライト「魔法弾」を開く
実装
発射のトリガーができたから、魔法弾スプライトに戻ってクローンが生まれたあとの動きを作るよ。クローンされたときで始動したら、まず魔法少女の位置に移動してマウスの方向を向く。
表示したあとずっとで10歩ずつ前進し続ける。発射時点でのマウスの方向がそのまま弾道になるから、一度飛び出したらまっすぐ飛んでいくだけだよ。
弾の軌道がマウスの位置で決まるから、狙いをつけて撃つ感覚がちゃんと出るのがいいよね。
#13命中判定
飛んでいく弾が大スライムに当たったときの処理を追加するよ。( ) に触れたで大スライムとの接触を検知したら、Pop音を鳴らして「■倒した数」を1増やす。
0.1秒だけ待ってからこのクローンを削除するでクローンを削除。命中した弾はちゃんと消さないと、クローンが際限なく増えて処理が重くなるんだ。
ヒット音+スコア加算+クローン削除っていう一連の流れ、シューティングの当たり判定では定番のパターンだよね。
#14弾の後片付け
画面の端まで飛んで外れた弾もきちんと消す処理。端に触れたらこのクローンを削除するで即削除。
クローンの後片付けは地味だけど大事なんだよ。スクラッチのクローン上限は約300体だから、使い終わったクローンをこまめに消さないと新しい弾が作れなくなったりするんだ。
#15被弾エフェクト①
準備
スプライト「大スライム」を開く
実装
ずっとの中で( ) に触れたをチェックして、魔法弾に触れたらCrunchの音を鳴らす。音が出ることで「ちゃんと当たった」感がプレイヤーに伝わるんだよね。
#16被弾フラッシュ
音だけじゃ物足りないから、視覚的なフィードバックも追加していくよ。( ) 回繰り返すで3回ループして、「明るさ」効果を100にしてから0.1秒後に0に戻す点滅を繰り返す。
( ) の効果を ( ) にするで「明るさ」を100にするとスプライトが真っ白に光って、0に戻すと元の色に戻る。この光る→戻るを3回やれば、ゲームでよくあるヒットフラッシュ演出の完成だね。
#17子スライムの量産
準備
スプライト「子スライム」を開く
| スプライトについて |
|---|
| 大スライムから生まれるクローンの小型敵スライム。プレイヤーを追いかけて魔力を1減らす。倒した数が増えるほど移動速度が上がる。魔法弾に当たるたびにサイズが縮む。 |
| どんな役割か |
| プレイヤーをぐんぐん追いかける子スライムを作ろう!倒した数が増えるとどんどん速くなるよ。魔法弾を当てるとだんだん小さくなっていく面白い仕組みも実装するよ! |
実装
旗クリックで隠すして本体を隠し、サイズを70%に設定。ずっとの中で( ) のクローンを作るを回して、自分自身のクローンをひたすら生成し続ける。
魔法弾と同じで、本体は非表示のまま「量産機」として裏で動く設計だね。
#18難易度カーブ
2つのもし ( ) ならを順番に並べていて、「■倒した数」が20未満なら0.5秒待ち、40未満ならさらに0.2秒待つ。つまり序盤(20未満)は合計0.7秒間隔、中盤(20〜39)は0.2秒間隔、終盤(40以上)は待機なしで最速生成になる仕組みなんだ。
#19子スライムの追尾
クローンが生まれたら、大スライムの位置からスタートして魔法少女に向かって飛んでいく動きを作るよ。クローンされたときで始動したら、大スライムの場所に移動して魔法少女の方を向く。
移動速度にも難度変化が入っていて、もし ( ) ならでなければで「■倒した数」が60未満なら3歩ずつ、60以上なら5歩ずつ進むよ。
生成間隔が速くなるだけじゃなく弾速まで上がるから、終盤はかなりの激戦になるんだよね。
#20子スライムの衝突処理
端に触れたときもクローン削除で後片付けだよ。魔法弾と同じく、画面外に出たクローンはちゃんと消してリソースを解放するのが鉄則。
#21子スライムの偏向①
ここからが子スライムの面白いところ。もうひとつのクローンされたときスクリプトで、魔法弾が当たったときのリアクションを作るよ。
ふつうのシューティングなら弾に当たった敵は消えるよね。でもこの子スライムは消えないんだ。( ) に触れたで魔法弾との接触を検知したら、まず音を鳴らす
#22子スライムの偏向②
音のあと、( ) へ向けるでどこかの方向にランダムで向きを変えて、大きさを ( ) ずつ変えるでサイズを-10する。弾が当たるたびにちょっとずつ小さくなっていくんだ。
まとめ
これで魔法少女シューティングゲームの完成!クローンで弾や敵を管理しながら、得点に応じて難易度が変わる仕組みも作れたね。子スライムが消えずに偏向する独特のゲームデザインも、コードを見てみると意外とシンプルな仕組みで実現できてるんだよ。次回もまた別の作品でスクラッチを楽しんでいこう!