スクラッチで簡単シューティングゲームを作る方法|点数・ライフ・背景スクロール
Scratch(スクラッチ)のシューティングゲームの作り方について紹介します。
「スクラッチでシューティングゲームが作れるの!?」と思う方もいますよね。
実は、スクラッチでは、簡単なものから複雑なものまで、シューティングゲームがたくさん作られています。
そこで、今回は、初心者がシューティングゲームを作るポイントをまとめてみました。
基本編と応用編に分けて、シューティングゲームの作り方を詳しく紹介します。
その前に、まずはシューティングゲームの作品例から紹介します。
目次
シューティングゲーム|スクラッチの作品例
スクラッチで作れるシューティングゲームってどんなもの?
シューティングゲームは、飛行機やロケットを操縦し、敵となる飛行機や宇宙船などをビームなどで撃墜するゲームです。
スクラッチで作れるのは、大きく分けて、縦スクロールと横スクロールの2つのタイプ。
どちらのタイプでも、背景の画面を、縦または横に強制スクロールをさせるのが特徴。
強制スクロールのため躍動感があり、ドキドキハラハラのスリルや爽快感が楽しめるのがシューティングゲームの大きな魅力です。
縦スクロールのシューティングゲーム例
縦スクロールのシューティングゲームとしては、次の作品がおすすめです。
メインキャラや敵キャラ、背景、動きなどはまさにシューティングゲームそのもの。
ビームは自動で発射され、対地ミサイルは自分で発射する形式。
シンプルな作りで、初心者でもプレイを楽しめます。
横スクロールのシューティングゲーム例
横スクロールシューティングゲームは、次の作品がおすすめです。
スペースキーで弾を発射するだけでなく、P・B・Rを使って、それぞれパワーモード、レーザーモード、爆弾モードが使えるシューティングゲーム。
敵も様々な形の弾幕を発射してくるなど、本格的な内容になっています。
小学生が作ったシューティングゲーム例
キッズプログラミング教室アルスクールに通っている小学生が作ったシューティングゲームを紹介します。
子供たちが自分で考えて作った作品です。どれも個性的でおもしろいですよ。
カラフルキャラのシューティングゲーム
コインを打ち落とせ
https://youtu.be/rD9R0xUKR7A
簡単シューティングゲームの作り方【スクラッチ】
では、ここからは初心者向けにシューティングゲームの作り方を解説していきます。
こちらの動画のゲームを作っていきます。
今回は、日本人向けの背景やスプライトが多い【アルスタジオ】を使って説明します。
スクラッチと操作はまったく同じなので、スクラッチで作成する場合でも参考にしていただけます。
スプライトの準備|メインキャラ・弾・敵キャラ
まずは、必要なスプライトを準備しましょう。
ここでは、右下の猫マーク(スプライトを選ぶ)から、次の3つを選びました。
- 自分が操縦するキャラ:戦闘機2
- 敵:赤い敵
- 弾:ビームイエロー
ここまでで画面は次のようになります。
背景の画像
次に、右下の画像マーク(背景を選ぶ)から、「Stars」を選びました。
そうすると、右画面に宇宙の背景がつきました。
メインキャラの動きを作ろう
次に、メインキャラの動きを作っていきます。
- 0度に向ける:戦闘機を上に向ける
- x座標を0、y座標を-120にする:戦闘機のはじめの位置を決める
これで、戦闘機の向きと初めの位置が決まりました。
さらに、戦闘機を上下左右に動かせるようにします。
左右方向は、ここでは「左右矢印キーが押されたとき」に「x座標を±10ずつ変える」ようにします。
上下方向は、ここでは「上下矢印キーが押されたとき」に「y座標を±10ずつ変える」ようにします。
これで、矢印キーで戦闘機が動くようになりました。
弾の動き
次に、弾(ビーム)の動きを作ります。
「スペースキーが押された時に、戦闘機からビームが上に発射される。端に当たるとビームは消える。」というコードを作りました。
ビームイエローは、次のような順番でコードを並べました。
- オリジナルのビームイエローは隠す
- クローンされたら、戦闘機2へ行く
- 0度に向ける(上方向に向ける)
- y座標を10ずつ変えて、上に移動させる
- 端に当たったらクローンを削除する
少しずつシューティングゲームっぽくなってきました。
敵キャラの動き
次は、敵キャラの動きです。
敵キャラは、「画面内に2秒に1回現れ、下の方へ落ちていく」ようにコードを並べました。
敵は、次のような順番でコードを並べました。
- オリジナルの敵は隠す
- 2秒に1回クローンを作成
- 現れる場所は画面上方、乱数を用いてx軸方向はランダムな位置に出現する
- 下方向に動き、端に触れると自動的に消える
ここまでで、それぞれのスプライトの基本的動作が完成しました。
ただ、これでは、ビームイエローが敵に当たっても、何も起こりません。
ここからは、「ビームイエローに当たったら敵が消える」というコードを作っていきます。
「弾が当たる ⇒ 敵が消える」を作ろう
シューティングゲームのように、弾(ビーム)が当たったら敵が消えるようにしましょう。
まず、敵のスプライトで、ビームイエローに触れたら、敵のクローンが削除されるようにします。
それと同時に弾も消す必要があるため、「げきつい」のメッセージを送ります。
一方、ビームイエローのスプライトでは、「げきつい」のメッセージを受け取ったときに、同様にクローンが削除されるようにします。
ちなみに、ビームイエローには、コスチュームがあと2つあるので、敵に当たったら2と3が現れるようにしました。
これで弾が命中すると敵が消えるようになりました。
「効果音」をつけよう
ビームイエローを発射したときと、敵に当たったときの効果音をつけていきます。
効果音は、左上の「音」を選び、左下の「スピーカーマーク」で選択することができます。
今回は、レーザー3とばくはつを選びました。
次に、音ブロックから、「○○の音を鳴らす」を取ってきて、ビームイエローのスプライトで、「ばくはつ」と「レーザーー3」を下の場所に並べます。
これで、効果音をつけることができました。
ここまでで、シューティングゲーム基本編は完成です。
シューティングゲームの応用編①点数・ライフ(HP)
応用編①として、点数やライフの作り方を解説します。
次の2つができるようにブロックを並べていきます。
- ビームイエローが敵にあたったら、「点数」が1ずつ増える
- 戦闘機の「ライフ」を3に設定し、敵に当たったら1ずつ減る、0になったらゲームオーバー
<完成イメージ>
点数の作り方
まず、「変数」⇒「変数を作る」から、「点数」を作成します。
その後、ビームイエローのスプライトの下の箇所に、次のブロックを並べます。
- 「点数を0にする」
- 「もし敵に触れたなら」「点数を1ずつ変える」
これで、ビームイエローが敵に当たれば、点数が1ずつ増えるようになりました。
旗を押せば、また点数は0にリセットされます。
ライフの作り方|敵の攻撃
次に、戦闘機のライフを設定します。
まず、「変数」⇒「変数を作る」から、「ライフ」を作成。
今回は、最初のライフを3にしました。
戦闘機のスプライトに、「旗が押されたとき」の下に、「ライフを3にする」を並べます。
次に、戦闘機が敵に当たったら、ライフが1ずつ減るを作っていきます。
敵のスプライトで、次のように並べました。
- 「もし戦闘機に触れたなら」「ライフを-1ずつ変える」「このクローンを削除する」
- 「もしライフ<1なら」「すべてを止める」
ここでは、「ライフを-1ずつ変える」の後に、「このクローンを削除する」の入れ忘れに注意!
そうしないと、一瞬で3つのライフがなくなります。
ゲームオーバーの作り方
次に、ライフが0になった時に、ゲームオーバーが表示されるよう作っていきます。
右下の背景を押して、左側のstarsを複製します。
背景のタイトルを「ゲームオーバー」に変えました。
そして、背景の画面で、■やTを使って、GAMEOVERを描いていきます。
その後、敵のスプライトで、「もしライフ<1なら」の後に、「背景をゲームオーバーにする」を並べました。
ここまでで、点数・ライフ・ゲームオーバー表示の完成です!
シューティングゲームの応用編②|縦スクロール
さらに、応用編として、背景が縦スクロールするシューティングゲームにします。
【完成イメージ】
では作り方を解説していきます。
画像をスプライトとして使う
縦スクロールする方法はいくつかありますが、今回は、画像をスプライトとして使い、縦に動かす方法を紹介します。
まず、右下の背景からstarsを選び、こちらの真ん中の画像をPCなどに保存します。
保存した画像をスプライトとして、右下の猫マークからアップロードします。
そのままだと、戦闘機や敵が隠れてしまうので、「旗が押されたとき」「最背面に移動する」を並べます。
背景を縦スクロールする
次に、背景のスプライトで、下のようにブロックを並べると、背景を縦スクロールすることができます。
こちらのコードでは、背景のスプライトとクローンのスプライトを下に動かします。
- 背景のスプライト:「x座標を0, y座標を0にする」
- クローンのスプライト:「x座標を0, y座標を360にする」
- 背景・クローンともに、「y座標を-5ずつ変える」でゆっくり下に移動
そして、スクラッチの座標はY座標:-180~180なので、背景のスプライトとクローンのスプライトをY座標:-360~360の間で動かします。
- 「もしy座標<-359なら」「y座標を360にする」で背景とクローンを入れ替える
縦スクロールでも「GAME OVER」を表示する
次に、縦スクロールでも、ライフが0になったら、GAME OVERが表示されるようにします。
それには、ライフが0になったら、背景スクロールが表示されないようにする必要があります。
まず、新しいメッセージで「ゲームオーバー」を作り、敵のスプライトで「もしライフ<1なら」の下に、「ゲームオーバーを送る」を並べます。
その後、背景のスプライトで、「ゲームオーバーを受け取ったとき」「隠す」を並べます。
また、「クローンされたとき」の下に、「もしライフ<1なら」「このクローンを削除する」を並べます。
これで、GAMEOVERが表示されるようになりました。
以上で、応用編のシューティングゲームも完成です!
さらにアレンジするなら
さらに本格的なシューティングゲームにするには、次のような様々なポイントが考えられます。
- 弾のバリエーションを増やす
- 機体のクローンを作るなどパワーアップさせる
- 敵キャラの種類や動き方を変える
- 大型のボスキャラを作る
- スクロールの向きやスピードを変える
- BGMをつける
- 背景を変える
- CLEARの画面や設定をいれる
オリジナルのシューティングゲームを作ってみましょう!
他に、マリオ風ゲームの作り方もまとめていますので、こちらも参考にしてください。
また、便利なブロックの使い方もこちらの記事にまとめていますので、参考にしてください。
スクラッチのゲームを作ろう
オンライン校でキッズプログラミング教室アルスクールのオンライン校では、スクラッチを使ったレッスンを行っています。
子ども達は、自分で考えたゲームを創作するなどして、想像力を思いっきり広げながらプログラミングを学んでいます。
- 小5男子の作品
- ゲームの構成は、一から自分で考えた
- 横スクロールのプラグラミング方法を学びながら、完成までがんばった作品
無料体験レッスンは、随時開催中!アルスクールの学びを体験してみませんか?