中目黒駅徒歩3分。お子様に合ったカリキュラム無料相談対応

Scratch(スクラッチ)

【初心者向け】簡単につくることができるスクラッチゲーム(3)シューティングゲーム

「スクラッチ(Scratch)のアカウントは作成して、使い方もだいたいわかったので、実際に作品を作ってみたい!」という方のために、誰でも簡単にできるゲームの作り方を紹介していきます。

第三弾は、シューティングゲームです。まずはどんなゲームか、遊んでみてください。

シューティングゲーム

最初にゲームがどうやってできているか整理しよう!

ゲームを作るときに、まずどんなゲームにしたいのか考えて分解・整理しておくと、後でプログラムを作るときに役立ちます。

たとえば、以下のようなイメージです。

(1)ゲームには、自分のロケット、敵キャラ、敵を倒すビームの3つが出てくるようにしたい。背景は、宇宙のイメージにしたい。

 

(2)ゲームがスタートしたとき自分のロケットが画面の下の方の真ん中に表示され、左右に動くようにしたい。

 

(3)敵は画面の上からあらわれ、下に向かってうごくようにしたい。敵を倒すビームはスペースキーを押したときに自分のロケットからあらわれ、上に向かって動くようにしたい。

 

(4)自分がうったビームが敵にあたったら、敵の機体とビームも消えるようにしたい。

ゲームを作る準備

最初に整理・分解した内容にそって、実際にゲームを作っていきましょう。まずは、ゲームのキャラクター(スプライト)や背景を準備します。

(1)スプライトを用意する

まず最初にゲームに出てくる3つのスプライトをつくります。スプライトを選ぶから、「Rocketship」「Lightning」「Planet2」の3つのスプライトを用意します。

(2)背景を用意する

次に、背景を用意します。「背景を選ぶ」から「Galaxy」を背景に設定します。

基本の動きをプログラムで表現する

次に、つくったスプライトにプログラムを追加していきます。

(1)自分のロケットを動かすプログラムをつくる

自分のロケットを動かすプログラムは下図のとおりです。

緑の旗が押されたら、まず、100%の大きさのままだと、画面に対して自分のロケットが多きすいるので、大きさを40%に調整します。

また、画面の下の真ん中に表示したいので、X座標は「0」、Y座標は「-140」の位置に表示します。

次に、キーボードの左右の矢印キーでロケットが動くように、キーが押されたら移動できるプログラムをつくります。「ずっと」と「もし」のブロックを使っていることに注意してください。

プログラムが完成したら、きちんと動くか緑の旗を押して試してください。

(2)敵をたおすビームのプログラムをつくる

次に、敵をたおすビームのプログラムをつくりましょう。ビームのプログラムは下図のとおりです。

ビームは、スペースキーが押されたときに発射できるようにします。

スペースキーが押されたら、ビームが自分のロケットのところに行って表示され、上に向かって進んでいって(Y座標を「10ずつ変える」)、画面の上の方(Y座標が「170」より大きくなる)に行ったら、表示されないようにします。

ここまでできたら、緑の旗を押して動かしてみましょう。

(3)敵キャラを動かすプログラムをつくる

次に、敵キャラをつくっていきます。以下のプログラムを書いて、敵キャラを動かしてみてください。

画面の上の方(Y座標が「180」)に出てきた敵キャラが、下に向かって動いていき(Y座標を「-5」ずつ変える)、一番下まで行く(Y座標が「-170」より小さくなったら)と表示されなくなります。

ここまでできたら、緑の旗で動かしてみてください。

それぞれのキャラクターが動くようになりました。

ただ、今のままでは、敵キャラが一度消えてしまうと出てきません。また、ビームが敵キャラにあたっても、敵キャラが自分のロケットにあたっても何も起こりませんね。

このあたりは後ほど修正しますので、いったん今はこのまま次に進みましょう。

キャラクター同士が反応するようにする

次に、キャラクターどうしが反応してゲームらしく内容に改造していきます。

(1)敵キャラにビームがあたったら、敵キャラが消えるようにする

まず、ビームが敵キャラにあたったら、敵キャラが消えるようにしてみましょう。

敵キャラが消えるようにしたいので、敵キャラのスプライトのコードにプログラムを書いていきます。

ビーム(Lightning)にふれたら、表示されなくしています。

「もし」のブロックを「ずっと」のブロックで囲むのを忘れないようにしてください。

プログラムをつくったら、実際に動かしてみましょう。敵キャラがビームにあたったら消えるようになっていたら成功です。

(2)敵キャラにビームがあたったら、ビームが消えるようにする

次に、敵キャラにビームがあたったら、ビームも消えるようにしてみましょう。

ビームを消すときに、敵キャラと同じように、「もし~に触れたならなら」で消すことができそうですが、うまくいきません。実際に以下のプログラムを書いて試してみてください。

一度、このプログラムは削除しましょう。

ビームが消えるようにするために、メッセージという機能を使います。

まず、敵キャラのプログラムでビームにあたったときに、「敵キャラにあたった」というメッセージをビームに送り、そのメッセージを受け取ったらビームが消えるというプログラムにします。

まず、敵キャラからメッセージを送るプログラムをつくります。

「イベント」カテゴリーから「メッセージ1を送る」というブロックを下図の位置に追加して、「メッセージ1」に部分をクリックします。

メッセージ名を「ビームが敵キャラにあたった」として、「OK」をクリックします。

次に、ビーム側で、「ビームが敵キャラにあたった」メッセージを受け取ったら、ビームが消えるようにします。

ここまでできたら、緑の旗で動かしてみてください。敵キャラもビームも両方消えるようになったら成功です。

(3)敵キャラが何度も出てくるようにする

次に、敵キャラが何度も出てくるように修正します。

先ほど使ったメッセージ機能を使ってつくります。

敵キャラが表示されるのは、「緑の旗が押されたとき」と「画面の一番下まで行ったとき」で、両方とも同じように画面の上から出て、下に向かって動いていけばよいですね。

そこで、さきほどお緑の旗が押されたときの下につくった敵キャラの動きのプログラムを切り離して、下図のように「敵キャラを表示する」というメッセージで動くようにします。

ここまでできたら、緑の旗を押して、敵キャラが何度も表示されることを確認しましょう。

(4)敵キャラが毎回違う場所から出てくるようにする

今のままだと、敵キャラはいつも画面の真ん中の上から出てくるので、面白くありません。

そこで、毎回違う場所から敵キャラが出てくるようにしてみましょう。「演算」カテゴリーにある「~から~までの乱数」というブロックを使って、敵キャラのプログラムに追加します。

乱数ブロックは、実行されるたびに毎回ランダムな数字が入るようにするプログラムです。

上の図では、「-220」から「220」までになっていますが、いろいろな数字を入れて試してみてください。

ゲームオーバーの処理を追加する

最後に、敵キャラと自分のロケットがぶつかったら、ゲームオーバーにする処理をくわえます。

自分のロケットのスプライトのコードに、下図のプログラムを追加してください。

敵キャラとビームがあたったときの処理とほぼ同じ仕組みですね。

一つ違うのは、「ゲームオーバー」というメッセージを送っているところです。

ゲームオーバーというメッセージを受け取ったら、画面に「GAME OVER」の文字が表示されるようにします。

「スプライトを選ぶ」から「描く」を選んでクリックしてください。

コスチュームの編集画面が表示されたら、「テキスト」ボタンをクリックして、画面中央の編集画面に「GAME OVER」の文字を入力します。

文字をクリックすると、もじの周りに青い線が表示されるので、四隅に表示される丸い部分をクリックして動かすと、文字の大きさを変えることができます。

文字の入力と大きさの調整ができたら、画面の中央に表示されるように、座標を変更しておきましょう。

文字ができたら、この文字を表示するプログラムをつくります。

「GAME OVER」の文字は、緑の旗が押されてゲームがはじまったときには表示されないようになっていて、ゲームオーバーになったら表示するようにします。

ここまでできたら、緑の旗を押して動かしてみてください。

敵キャラと自分のロケットがぶつかったときに、「GAME OVER」の文字が表示されたら成功です。

ただし、今のままだと、ゲームオーバーになっても、敵キャラが表示され続けてしまいますので、下図のプログラムを敵キャラのコードに追加して、敵キャラが表示されないようにします。

 

以上で、シューティングゲームが完成しました。

といっても、いったん動くゲームができたというのが今の状態です。さらにおもしろくなるように、今のプログラムを改造してみてください!

また、他のゲームの作り方も解説していますので、ぜひチャレンジしてみてください。