【Scratchで簡単なゲーム作成編②】スコアボードの作成と得点の表示
※ 当ページには【広告/PR】を含む場合があります。
2020/09/04
今回の内容までの変更を反映させたゲームのサンプルは以下のようになります。 この記事では、スコアボードの作り方を中心に解説していきます。
スコアボード?
ゲームでは得点を記録・表示をする部分がプレーヤーの見やすいと思われる位置に貼り付けられています。 通常は画面の隅っこに置かれるのが多いと思います。

前回までのプログラムでは、たこがエサ置き場におかれた物を食べると、その食べ物が消えるだけでしたが、今回は食べたもの(りんごかタコ)で得点が入るようにしました。
ひとまず得点ルールとして、りんごを食べると1個につき1点、タコを食べると1個につき5点が加算されます。
メガネのアイコンには、プレー中にタコの食べた総得点が表示されます。
材料の準備
まずはプログラミングを始める前に、素材の準備からやっていきます。
スプライト
前回のプログラムから変更のあったスプライトのみを説明していきます。
前回から変更や追加のあったスプライトは以下の図のものです。

それぞれの変更点は、
+ おきばしょ > コスチュームを変更
+ スコア > 新規追加
+ りんごのかず > 新規追加
+ タコのかず > 新規追加
+ スコアボード > 新規追加
となっています。
おきばしょ
さら

また、新しく追加した
スコア
りんごのかず
タコのかず
スコアボード

スコアを表示するスプライトには、数字のコスチュームをそれぞれ登録してあります。 数字とコスチュームの順番を合わせると見やすくなります。
変数
変数も今回新しく追加したものだけをあげると以下のようになります。

+ クローンスコア:
スコアのスプライトの現在のクローンの数(※後述)
+ クローンタコ:
タコのかずのスプライトの現在のクローンの数(※後述)
+ クローンりんご:
りんごのかずのスプライトの現在のクローンの数(※後述)
+ スコア:
現在の得点の値を記録する
+ たべたタコ:
現在の食べたタコの総数を記録する
+ たべたりんご:
現在の食べたリンゴの総数を記録する
ローカル変数
そのスプライトか背景だけの専用として使える変数を
ローカル変数
ローカル変数を使うと、そのローカル変数を設定したスプライト1つだけに限定されて、他のスプライトではその値を共有して使うことができなくなります。

スコアを表示する
スコア
りんごのかず
タコのかず
クローン_
ブロックコーディング
以上で材料が揃ったので、次にブロックを組み立てていきます。
スコアボードの配置
まずは
スコアボート

そのスコアボートの上に、
スコア
りんごのかず
タコのかず
では先に
スコアボート
初期化の処理ですが、変数
スコア/たべたりんご/たべたタコ

またゲームスタート時に、スコアボートを手前から10層奥に下げます。 層が手前になるスプライトほど、上に表示されますので、とりあえず今は
スコアボートは手前から10層下
幽霊の効果
たこが画面の上に入り込んでも薄くみえるように、スコアボートの幽霊効果は40~70くらいにしとくと良いでしょう。
次に新しく
たべた
たべたを受け取ったとき

変数
たべもの?
スコア/たべたりんご/たべたタコ
スコアの計算が終わったら、
たべもの?
からっぽ
クローン(分身体)による文字表示
今回の内容で最も使いこなすのが難しいであろうテクニックが、
クローン
このテクニックを使えるようになると、スクロールアクションゲームのような、たくさんの敵や障害物を表示させるときにも利用できるので、グッとゲームらしいゲームが作れるようになります。
まず
スコア
最初に変数
クローンスコア

変数
クローンスコア
クローンスコア = 2
クローンスコア = 3
クローンスコア = 1
クローンスコア = 1
またこの1の部分で、
自分のクローンを作る
ブロックの後半の2の部分はクローンスコア(得点の文字数)に応じて、得点を表示させる場所も少し修正できるようにしています。
さて、ただクローンしただけでは同じ場所に分身たちが重なって置かれるだけですので、分身体を本体のスプライトからそれぞれの座標にずらしてあげる必要があります。 そんなときに使うのが
クローンされたとき
このイベントはスプライトがクローンされるたびに起こるため、クローンひとつひとつをどこかの座標へ移したり、効果を付けてみたりと、個別の設定を与えることができます。
そのため、このスプライトだけが自分の分身体の数を覚えておけるように、スプライト専用のローカル変数
クローン_
ローカル変数は、対象のスプライトを選んで
[変数]の項目 > [変数を作る]ボタン
このスプライトのみ

クローンされたときのプログラミングブロックは以下です。

変数
クローンスコア
クローン_
スコア
表示がどうなるかテストするには、ゲームスタート実行後に
スコアを***にする

満足な表示になるまで、プログラミングブロックの座標などを調整していきながらプログラミングすると良いです。
数字の表示のやり方は他のスプライトも共通ですので、残りの
りんごのかず
タコのかず

"たべた"ときのイベント
スコアを更新するためには、たこが食べ物を食べたことを使えるメッセージイベントを各スプライトに送信する必要があります。
おきばしょのスプライトの
さわった1
たべたを送る

以上で、ゲームをプレイ中にスコアを表示させるための簡単なスコアボードが完成しました。
まとめ
スコアボードを付けると、よりゲームらしさが出てきたと思います。
今回でプログラミングの参考にさせていただいている
次回以降の別の記事へ続きます。