【Scratch】<入門編>3-4 フルーツをキャッチするゲームを作ろう!(スコア/得点表示)

・ゲームにスコア/得点をつけて表示する方法
・時間制限を付けたゲームの作り方
・クローンと乱数を上手に活用する など
こんにちは、Anksです。今回もみなさまよろしくおねがいします。
スプライトの動かし方、クローンや乱数、変数、当たり判定と時間制限など、たくさんの内容が含まれた総まとめのプロジェクトを作っていきましょう!
これを理解して作れるようになっていれば、スクラッチの基本的なゲームは自分で作れるようになっていると思います!
では、さっそくゲームの内容を見てみましょう。
旗のボタンを押すと、上からりんごやバナナがランダムな位置に降ってきます。
矢印キーの←と→でおさるを動かしてうまくキャッチしてください!
フルーツをとれば得点アップ(りんご:1点、バナナ:3点)ですが、
ボールに当たるとマイナス2点です。
30秒の時間制限でハイスコアを狙うゲームになっています。
まずは、背景とスプライトから設定していきましょう!

○背景とスプライトの設定

背景には「Blue Sky」、スプライトに「Monkey」を追加して、ねこのスプライトは削除しましょう。

【Scratch】スクラッチ Blueskyとmonkeyの追加

「Monkey」のスプライト名=「さる」、位置をX座標=0、Y座標=-125、大きさを50にしました。

位置の初期化のためのブロック(「X座標を0、Y座標を-125にする」)も忘れず配置しましょう。

落ちてくるスプライトには、「Apple」・「Bananas」・「Baseball」が登場しますが、
作るスクリプトがほぼ同じ構成になるので、ひとつだけ作って、後で複製(コピー)したほうが便利です。

 

なので、ここでは「Apple」だけを追加して、
スプライト名=「りんご」、位置はX座標=0、Y座標=140、大きさを70に設定しておきましょう。

【Scratch】スクラッチ Appleの追加

ここまでできたら、さるの動きを作っていきましょう!

○さるの動きを作る

今回のゲームでは、さるは矢印キーの←と→で動かします。

とすると、<入門編>2-3ねこを動かそう!その2で作った内容がうまく使えそうですね!

ただ、今回は上下には動かないので、スクリプトは左右のみのシンプルなものになります。

【Scratch】スクラッチ さるの動きのスクリプト

上図のように、先ほどの初期化のブロックの下に繋げます。

ひとまず、旗のボタンを押してみて、矢印キーの←→でさるが動くことを確認しましょう!

x座標は10と-10ずつ変えるようにしていますが、この数字を調整すると、さるの速さを変えることができます。

完成したら、次はりんごのスクリプトを作っていきましょう。

○りんご(クローン)の動きを作る

今回のゲームでは、りんごは1秒ごとに新しいものが落ちてくる仕組みです。
何度も同じスプライトを出したいときに使えるのがクローンでしたね!

まず、旗が押されたときに、本体は隠し、

【Scratch】スクラッチ りんごの本体は隠す(クローン利用)

「1秒待つ」→「クローンを作る」がずっと実行されるようにしましょう!

【Scratch】スクラッチ 1秒ごとにクローンを作る

本体のスクリプトが完成したら、次はクローンのスクリプトを作っていきます。

まず、クローンされたときに、表示して、

【Scratch】スクラッチ クローンは表示する

その後、乱数を使って、りんごのクローンをランダムな位置に移動させることを考えましょう!

りんごのクローンが出てくる高さ(Y=140)は変えずに、
横の位置だけをランダムにしたいので、
X座標だけを乱数にしていきます。

【Scratch】スクラッチ りんごのX座標の乱数の範囲

上の図を見るとわかりやすいと思いますが、
今回はX座標の乱数の範囲を-200から200にしてみましょう。

【Scratch】スクラッチ クローンのX座標を乱数に

これで全体にバラバラとりんごが現れるようになります。
あとは、落ちてくるようにすれば動きは出来上がりそうです!

りんごのクローンを下方向に動かしていくためには、Y座標を少しづつ減らしていけばいいですね。

【Scratch】スクラッチ クローンを落下させるスクリプト

今回は、Y座標の減らし方は-7にしてみましたが、
この数値を調整すると、りんごの落ちる速さを変えることができます。

Anks
速さのバランスは、実際に自分でプログラムを実行しながら調整してみましょう!

ここまで出来たら、一度旗のボタンで実行してみてください。

【Scratch】スクラッチ 落ちたりんごが溜まっていく

無事、りんごがたくさん落ちてきましたでしょうか?
このままだと下の方に溜まっていきますね。

次は、りんごの当たり判定と得点をつけていきましょう!

○当たり判定と得点表示

このゲーム内でりんごが何かに当たってイベントが発生するのは、次の二つのときがあります。

①さるにあたったとき:得点が1点増えて、りんごが消える。
②地面におちたとき :得点は変わらず、りんごが消える。

それぞれのパターンをクローンのスクリプト内に組んでいきましょう!
条件は「①もしさるに触れたなら」と、「②もし端に触れたなら」ですね。

まず、新しく「得点」という名前の変数を作り、

【Scratch】スクラッチ 新しい変数(得点)

①と②のパターンを、下図のように、それぞれ「ずっと」ブロックの中に配置しましょう。

【Scratch】スクラッチ 当たり判定と得点をつける

ここで、クローンを消すには、「このクローンを削除する」ブロックを使うようにしましょう!

もし「隠す」だけだと、見かけ上は消えていても、そのクローン自体は存在しています。

すると、
ゲーム中にたくさんのクローンが溜まってしまい、プログラムの処理に負荷がかかったり、
上限数(Scratch3.0の場合、一つのプロジェクト内で300個)をオーバーする可能性もあります。

Anks
不要な「クローン」は「隠す」のではなく、「削除する」ようにするのがポイントです!

ここまで完成したら、ふたたび旗のボタンで実行して試してみましょう。

【Scratch】スクラッチ さるの動きとりんごのクローンと得点

さるを動かしてりんごを取った時に、ちゃんと得点が増えていってますでしょうか?

ここまで出来たら、りんごのスクリプトは完成です。

 

このりんごのスプライトを複製(コピー)して、
他のスプライト「Bananas」と「Baseball」も作っていきましょう!

○スプライトの複製(コピー)

スプライトやスクリプトを複製するには、いくつかの方法があります。

①スプライトをまるごと複製(コピー)して、コスチュームなどを変える
②スクリプトのブロックのかたまりを、まるごと別のスプライトにドラッグ&ドロップしていく
③バックパックを使う(この機能はアカウント登録済みのオンライン版のみ)

今回は、①の方法で進めたいと思います。

まず、りんごのスプライトの上で右クリックをして、「複製」を選びます。

【Scratch】スクラッチ りんごのスプライトの複製

すると、「りんご2」というコピーされたスプライトが出来上がります。

【Scratch】スクラッチ 複製(コピー)されたスプライト

コピーができたら、それを選択した状態のまま、①コスチュームタブをクリックして、

【Scratch】スクラッチ 新しいコスチュームを選ぶ

②左下の【Scratch】スプライト追加ボタンをクリックして、「Bananas」のコスチュームを選びます。

【Scratch】スクラッチ コスチュームの差し替え

すると、「Bananas」のコスチュームが追加されるので、
その上の「apple」のコスチュームは消してしまいましょう。

【Scratch】スクラッチ Bananasのスプライト完成

これで、りんごをコピーしてバナナのスプライトを作ることができました!

スプライト名は「バナナ」に変更しておきましょう。

おなじように、もう一つコピーを作って「Baseball」のスプライトを作れば複製は完了です。

【Scratch】スクラッチ 複製(コピー)の完了

スプライト名は「ボール」に変更しましょう。

完了したら、次に、バナナとボールの各数値(パラメータ)の設定をしていきます!

○各数値(パラメータ)の設定

各アイテムの点数や出現頻度、速さに違いがあると、ゲームが面白くなります。

・バナナは得点が高い分、なかなか出てこず、落ちる速さも早くて取りづらい
・ボールは得点がマイナスになるので、出てくる量は少なめ、ゆっくり落ちてきて邪魔になる、

というような構成にしてバランスを整えてみましょう。

【Scratch】スクラッチ バナナとボールのパラメータ設定

パラメータを変更する箇所は上の図のようになります。

①「~秒待つ」の部分
この数値を変更すると、何秒に一度クローンが出現するかを設定できます。バナナは4秒に一度、ボールは3秒に一度に設定します。

②「Y座標を~ずつ変える」の部分
この数値を変更すると、落ちる速さが変えられます。バナナはマイナスを大きめの-10にして、ボールは小さめの-5にしました。

③「得点を~ずつ変える」の部分
アイテムを取った時の点数(スコア)の増え方です。バナナは+3点、ボールは減点なのでー2点です。

実際に実行してみて、正しく動いていることを確認してみましょう!

【Scratch】スクラッチ 各パラメータの設定後

このままだと得点がリセットされないので、「得点」の初期化のブロックを置く必要があります。

最後に、時間制限のスクリプトと合わせて作っていきましょう!

○時間制限のスクリプトを作る

時間制限はゲーム全体に関することなので、主役のさるのスプライトで作っていくことにします。

作り方は、前回のチャプターで紹介したものと同じ内容です。

新しく「残り時間」という名前の変数を作り、

【Scratch】スクラッチ 時間制限のスクリプトを追加

上図の②のようにスクリプトを新しくセットしましょう!

今回は、ゲームの制限時間は30秒に初期設定し、
③の得点の初期化のブロック(→「得点を0にする」)も合わせてここでセットしています。

最後に、ゲーム画面を見ると、変数が2つになったので「得点」と「残り時間」が縦に並んでいます。

落ちてくるフルーツが見えづらくなるので、
ドラッグ&ドロップで移動して見た目を整えましょう!

【Scratch】スクラッチ おさるのゲーム完成

これで、今回のゲームは完成になります。お疲れ様でした!

実際にプログラムを実行して、遊んでみてください。

スプライトを別のイラストやパラメータにしたり、
ゲームが終わった時に背景やコスチュームを変える、「TIME UP!!」という文字を表示させる、
などの工夫しても良いかもしれません。

 

<入門編>に関しては今回のチャプターで最後になります。

これまで実際に作って動かしながら、スクラッチでの基本的な操作やゲーム作りが自分自身でもできるようになっているのではないでしょうか??

 

さらに、<応用編>やゲーム作りのアイデアなどの記事を更新中です!
よろしければ日頃見に来ていただけたら嬉しく思います。

今回もありがとうございました。

→次回 <応用編>4-1 恐竜探しゲームを作ろう!(リストってなに?/リストの使い方その1) に進む

【Scratch】誰でもわかるスクラッチ入門 コンテンツ一覧 に戻る