- 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. スクラッチで宇宙シューティングゲームの作り方|スコアで激化する難易度システム (いまここ)
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ファイターの初期設定
準備
スプライト「ファイター」を開く
| スプライトについて |
|---|
| プレイヤーが操作する戦闘機。左右キーで横移動し、スペースキーでミサイルを発射する。HPとスコアを管理し、背景切り替えでゲーム進行を制御する |
| どんな役割か |
| プレイヤーが操る戦闘機だよ。左右キーで動いてスペースで弾を撃てるようにして、HPとスコアも表示しよう! |
実装
まずは が押されたときで大きさを70%に設定して、画面の下(x座標0、y座標-145)に配置する。
#2左右移動の完成
ずっとで右矢印キーが押されてるかをずっとチェックし続ける仕組み。左矢印も追加して両方向に移動できるようにしよう。
( ) 歩動かすで右は10歩、左は-10歩。マイナスの値を入れると逆方向に進むってのがポイントだよ。
#3スコアとHPの準備
準備
変数「■体力」を追加
プレイヤーの残り体力。初期値5で、敵ミサイルに当たるたびに1減る。0以下でゲームオーバー
変数「■スコア」を追加
プレイヤーの獲得スコア。敵爆撃機を撃墜するたびに1加算される。スコアが高いほど敵ミサイルが速くなる
実装
( ) を ( ) にするで「■スコア」を0、「■体力」を5にセットするんだ。ゲーム開始時に毎回リセットされるから、何度でも最初からやり直せるよ。
#4ミサイル発射の仕組み
もし ( ) ならでスペースキーが押されたか判定して、押されてたらミサイルのクローンを生成。直後に( ) 秒待つで0.1秒待つことで連射速度を制御してるんだ。
この0.1秒がないとフレームごとに弾が出まくって画面が弾だらけになる。待ち時間の値を変えれば連射の間隔を自由に調整できるよ。
#5ミサイルの初期化
準備
スプライト「ミサイル」を開く
| スプライトについて |
|---|
| プレイヤーの戦闘機から発射される弾。上方向に飛び続け、敵爆撃機に当たるとスコアを加算して消える |
| どんな役割か |
| 戦闘機が撃つ弾だよ。スペースキーで生まれて上に飛んでいって、敵に当たったらスコアが増えるようにしよう! |
実装
ミサイルの本体は隠すで非表示にして、大きさを20%に。本体は「設計図」の役割で、実際に飛ぶのはクローンの方なんだ。
#6ミサイルの飛行
クローンされたときでクローンがスタートしたら、ファイターの位置から出発してy座標を ( ) ずつ変えるでy座標を10ずつ増やし続ける。これで弾が上に飛んでいく動きが完成だよ。
#7敵爆撃機のワープ
準備
スプライト「敵爆撃機」を開く
| スプライトについて |
|---|
| 画面上部にランダムな位置でランダムな間隔で出現する敵。ミサイルが当たると撃墜される |
| どんな役割か |
| ランダムに現れる敵の爆撃機だよ。画面上の方をうろうろして、ミサイルで倒せるようにしよう! |
実装
x座標を ( ) 、y座標を ( ) にするのx座標に-230〜230、y座標に0〜130の乱数を入れて、画面上部のどこかにランダム出現させるんだ。( ) 秒待つに0.5〜2.0秒の乱数を入れることで、出現タイミングも毎回バラバラになる。
乱数で位置も時間も変わるから、プレイヤーは次どこに出るか予測できないんだよ。シューティングの緊張感を生み出す仕組みなんだ。
#8敵への命中判定
準備
スプライト「ミサイル」を開く
メッセージ「敵撃破」を追加
ミサイルが敵爆撃機に命中して撃墜したときに送信するメッセージ
実装
( ) に触れたで敵爆撃機に触れたかチェックして、当たったらCollectの音を鳴らして「■スコア」を1増やす。「敵を撃破」メッセージも送信してるよ。
当たり判定の後に( ) 秒待つで0.1秒待ってからクローンを削除するんだ。この間があることで、音が途切れるのを防いでる。
#9ミサイルの後片付け
端に触れたらこのクローンを削除するでクローンを削除する。クローンを放置すると300個の上限にすぐ達して新しい弾が撃てなくなるから、地味に大事な処理。
#10敵ミサイルの生成
準備
スプライト「敵ミサイル」を開く
| スプライトについて |
|---|
| 敵爆撃機の位置からクローンとして落下してくる爆弾。プレイヤーに当たるとHPが1減る。スコアが高いほど落下速度が上がる |
| どんな役割か |
| 敵が落とす爆弾だよ。上から落ちてきてプレイヤーに当たるとHPが減るようにしよう!スコアが増えるほど速くなるよ! |
実装
( ) のクローンを作るで自分自身のクローンを生成し続けるのがベースの動き。本体は非表示にして、大きさ15%のクローンが実際に画面で飛ぶやつ。
#11敵弾のスピードと加速
もし ( ) ならでなければで「■スコア」が60未満かどうか判定して、60未満ならy座標を-10ずつ、60以上なら-15ずつ変える。スコアが上がると敵弾が速くなって、ゲームがどんどん難しくなる仕組み。
#12発射間隔の段階制御
「■スコア」が20未満なら0.2秒待って、さらに40未満なら0.1秒待つんだ。最後に全員共通で0.2秒待つ。つまり序盤(20点未満)は合計0.5秒間隔、中盤(20〜39点)は0.3秒間隔、終盤(40点以上)は0.2秒間隔になるんだよ。
普通はタイマーで一律に間隔を管理するけど、この作品ではもし ( ) ならの条件ウェイトを重ねて3段階の変化を作ってる。条件をすり抜けるほどウェイトが減る発想、けっこう賢いよね。
#13プレイヤーへのダメージ
( ) に触れたでファイターに触れたらCrunchの音を鳴らして「■体力」を1減らし、クローンを削除するんだ。端に触れた場合もそのまま削除するよ。
当たった瞬間にクローンを消すから、1発で複数回ダメージを受けることはないよ。
#14ピンチ演出
準備
スプライト「ファイター」を開く
実装
最初に背景を「Blue Sky 2」にセットして、ずっとのなかで「■体力」が1になったら背景を「ピンチ」に切り替える。残りHP1で画面の雰囲気がガラッと変わるから、プレイヤーに危機感が伝わるやつ。
#15ゲームオーバー処理
まず でスプライトの他のスクリプトを止めて、背景を「GameOver」に切り替えるんだ。「やられた!脱出する」と1秒表示してから、すべてを止めるよ。
「スプライトの他のスクリプトを止める」を先に実行するのがポイントだよ。これがないとHP判定のループが動き続けて、処理が衝突しちゃうんだよ。
#16雲の生成ループ
準備
スプライト「雲」を開く
| スプライトについて |
|---|
| 宇宙空間の雰囲気を演出する装飾用の雲。ランダムなサイズと透明度で画面上から下へスクロールする |
| どんな役割か |
| 背景を流れる雲だよ。ランダムな大きさと透明度で上から落ちてきて、宇宙っぽい雰囲気を出そう! |
実装
本体を非表示にして、ずっとでy座標を200(画面の上の外)にセットしてからクローンを作る。( ) 秒待つに0〜1秒の乱数を入れて、雲の出現タイミングをバラけさせてるんだ。
#17雲のランダム設定
x座標は-255〜255のランダム、大きさは50〜100%のランダム、「幽霊」の効果を10〜80のランダムに設定。大きい雲は近くに見えて、小さい雲は遠くに見える――この大きさの違いが次のステップで効いてくるよ。
#18パララックスに雲が流れる
y座標を ( ) ずつ変えるの値に「0 − 大きさ ÷ 10」を入れてるんだ。大きさが100の雲は-10ずつ落ちて、大きさ50の雲は-5ずつ落ちる。大きい(近い)雲ほど速く、小さい(遠い)雲ほどゆっくり動くから、追加の変数なしで奥行き感が生まれるよ。
#19雲の削除判定
y座標が-160より下になったらこのクローンを削除するで消す。上から次々新しいクローンが生まれて、下で消えて、を繰り返すことで無限に雲が流れ続ける仕組みの完成。
まとめ
宇宙シューティングゲームが完成したね!クローンで弾を管理する仕組みと、スコアで難易度を上げる設計の両方を実装できたはず。パララックス背景の雲のテクニックも、追加変数なしで奥行き感を出せるからぜひ覚えておいて。自分流にアレンジして、もっと激しいシューティングに仕上げてみよう!