こんにちは、ECF Techブログ
担当のMichiです。
今回はスクラッチを使って、もぐらたたきゲームを作りたいと思います。クローンを使わずに、なるべくシンプルながら楽しめることを意識しました。よろしくお願いします。
対象読者
- Scratchは使えるけどゲームプログラムをどう形にしていいかわからない方
- Scratchを使ってのプログラミング教育を考えている方
作成するゲームについて
完成イメージ
まずは動画でごらんください。
ゲームのルール
- 制限時間は30秒とする
- もぐらをクリック(たたく)すると10点
- 10秒ごとに出てくるもぐらが追加される
- あとから出てくるもぐらは土にもぐるのが早い
ゲーム作成の準備
使用する画像
下の画像を使います。こちらは自由にご利用ください。4枚の画像をそれぞれスプライトのコスチュームとして使います。
※ダウンロードする時は、一度画像をクリックした後に右クリックでダウンロードします。
こちらの画像はフリーのフォントを活用し作成したものです。下記サイトで提供されている「こども丸ゴシック」を使わせていただきました。
背景画像はスクラッチにもともとある「Savanna」というテーマです。
スプライトの作成
もぐらの作成
ではここからさっそくスプライトの作成に入っていきます。まずは主人公のもぐらです。もぐらは下のように先ほどの4つの画像をそれぞれコスチュームとして設定しています。
また、コスチュームに画像を当てはめるためには、下のように「コスチュームをアップロード」を利用します。
準備ができたらプログラムに入っていきましょう。まずは1つ変数を用意しておきます。
この変数はもぐらのいまの状態を持っておく変数です。
0 | ふつうの状態 |
1 | 叩かれた状態 |
の意味で利用します。
では次に「はたがクリックされたとき」のプログラムです。
プログラムのポイント
- スタートした時点ではもぐらは地面にもぐっている状態なので「隠す」
- ずっとのループでは次のことを繰り返しています。
- もぐらがの位置をランダムに決定
- コスチュームを01~03に切り替えることで、顔を出すアニメーション
- 顔を出したら3秒そのまま
もぐらの位置をランダムに決定と書いていますが、範囲は下のように砂地のところに限定しています。
つぎはもぐらをクリックしたときのプログラムです。
プログラムのポイント
もぐらがたたかれたときの動作は「もし いま = 0 なら」のブロックにまとめられています。その中で「いま」の値を1にすることにより、同じもぐらを何度もたたけないようにしています。
そのほか、
- 痛がるもぐらの画像にかえる
- 得点を10増やす
- 痛がっている画像は1秒間表示
などを行なっています。
動きの違うもぐらを作っていく
ここまできたらもぐらのスプライトを右クリックし「複製」ででコピーします。
全部で3匹のもぐらを用意しています。名前はそれぞれ「mogura1」「mogura2」「mogura3」
この時点では3匹のもぐらのプログラムはすべて同じとなっています。ここからそれぞれのもぐらの動きを少しずつ変更します。
まずは「mogura2」からです。mogura1のプログラムと違う部分だけを赤い囲みで示しています。
プログラムのポイント
このスプライトのみが使える変数「でばん」を用意し、その値が1になるまで動くのを待たせるプログラムを追加しました。この値を使って、ゲームスタートから10秒後にもぐらが動き始めるように作っていきます。その部分はのちほどステージのプログラムとのやりとりで実現します。
また、下の赤枠部分を3秒から2秒に変更して、土から顔を出している時間を短くしています。
「mogura3」も「mogura2」と同じです。ただし、土から出ている時間はさらに短く「1秒」です(下のプログラム部分)
ゲームが終わったときに表示する文字
ゲームがおわったときに、終わったことを示す文字画像を表示します。上の方で用意した文字画像をスプライトとして読み込ませます。プログラムは次のようにシンプルです。
表示のタイミングはステージのプログラムからメッセージをもらったときに行ないます。
ステージのプログラムでゲーム全体を操作しよう
もぐらが3匹できあがったところで、プログラム全体の動作を決める「ステージ」のプログラムです。ステージのプログラムは次のとおりになります。
プログラムのポイント
- ステージのプログラムはタイマーの役割です。30秒を数えています
- 10秒たつと、メッセージ1を送っています。これはmogura2を動かすための指示です
- 20秒たつと、メッセージ2を送っています。これはmogura3を動かすための指示です
- 30秒たつと、「おわり」を送っています。「ゲームおわり」の文字画像を出すために使います
それぞれのスプライトがメッセージを受け取る
ステージからメッセージを送ったので、それぞれのスプライトがそれを受け取り動作するようにします。
ゲームおわり画像のスプライトは次のプログラムを追加します。
これにより、それぞれのスプライトの出るタイミングを決めることができました。
おわりに
今回は「もぐらたたきゲーム」を作ってみました。最後までご覧くださりありがとうございました。今回のゲームは難易度としてはとても簡単だと思うので、もぐらの数を増やしたり、強いもぐらを登場させたりなど、思い思いに更新してもらえたらと思います。
引き続き、Scratchを使った色んなプログラムを作っていきたいと思います。引き続きよろしくお願いします。
また、作成したプログラムはScratchのサイトにて、こちらのURLで共有しております。自由にリミックスしてみてください。