Scratchの手引き

Scratchの「変数」を使って、リンゴに触れた場合にスコアをカウント、ミスをしたら背景を変更する

Scratchはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。

はじめに

「変数」を使うことで、現在のゲームの状態を保存し、スコアやゲームオーバーの条件として利用することができます。「変数」とは数値や文字を保存しておける「箱」のようなものです。

ここでは、以前作成した「リンゴ」のスプライトをマウスポインターで触れたら消える簡単なゲームに「変数」を追加し、スコアが表示されるようにします。またミスをカウントする変数も追加することで「ゲームオーバーの背景」に切り替わるようにすることで、「変数」の使い方や、「条件分岐」の方法を学習していこうかと思います。

」の方法を学習していこうかと思います。

また「変数」については、こちらの記事でも解説しておりますのでご参照ください。
ゲームオーバーの場合の「背景」を切り替えるものもこちらの記事でも紹介しております。

今回の前提条件

下記画像の状態からはじめていきます。
まだの方は、先にこちらを紹介した記事はこちらを是非ご参照ください。

タイトル:Scratchに「ブロック定義」を使って、同じ処理をするプログラムをまとめる

「スコア」の変数を作る

まず、「スコア」を入れていく「変数」を作成していきます。
画面左側に「変数」という項目があるのでクリックし、その中の「変数を作る」をクリックします。

画面が遷移し、変数を作る画面になります。
「変数」の名前を「スコア」とし、右下の「OK」のボタンをクリックします。

この時点でステージを確認してみます。

「スコア 0」といった表示があります。この表示は隠すこともできますが、今回は「スコア」として表示したいのでこのままにします。

「変数」の設定をプログラムに追加していきます。

まず、「スコアの変数」の初期状態は「0」にしたいので、「変数」のところから、「スコアを0にする」をドラッグし、「が押されたとき」の下に入れます。

続けて、マウスポインターに触れた場合は、スコアとして加算したいので、
「変数」のところから「スコアを1ずつ変える」をドラッグし、「もしマウスのポインターに触れたなら」の中、一番上に入れます。

「スコア」の「変数」の動作を確認してみます。

ステージのをクリックし、ゲームを開始します。
「スコア」の表示は最初は「0」、マウスポインターで「リンゴ」のスプライトに3回触れると、「スコア」の表示は「3」になりました。

「ミス」の変数を作る

このままだと、永遠にゲームが終わらないので、「ミス」した場合の変数と、その条件を追加して、ゲームオーバー(ゲームが停止)されるようにします。

「ミス」をカウントする「変数」を作りたいので、「スコア」と同じように
「変数」をクリック、次に「変数を作る」をクリックします。

画面が遷移します。「変数」の名前はわかりやすく「ミス」にします。
入力できたら右下の「OK」をクリックします。

「スコア」の「変数」を作った際の解説は飛ばしましたが、「変数」のところをみると、「スコア」と「ミス」の変数が追加されていることがわかります。

余談ですが、「チェックマーク」を外すと、ステージから表示は消えます。
もし「チェックマーク」を外してステージから表示を消したとしても、その変数は動いているのでそこだけ注意してください。

「ミス」の変数をプログラムに追加していきます。

「ミス」の「変数」も「スコア」と同じように最初は「0」にしておきたいので、
「変数」から「スコアを0にする」をドラッグし、最初に入れた「スコアを0にする」の下に入れます。
入れたあと、「スコア」のところをクリックし、「ミス」に変更します。

「ミス」の場合の条件と処理を作る

「ミス」の条件を作っていきます。
今回は、「リンゴ」のスプライトがマウスポインターで触れることができずに下まで落ちてしまった場合を
「ミス」と定義し、その条件をプログラムしていきます。

「制御」から「もし〜なら」をドラッグし、「ずっと」の一番下にいれます。

次に「演算」から「〜 = 50」のブロックをドラッグし、「もし〜なら」の「〜」にドラッグします。

「変数」から「ミス」をドラッグし、「もし〜=50なら」の「〜」に入れます。
そのあと今回は「3」になった場合、ゲームオーバーにしたいので、「50」のところを「3」に変更します。

この条件になった場合、ゲームを止めたいので、「制御」から「すべてを止める」をドラッグし、
「もしミス=3なら」の中に入れます。

これで「ミス」が「3」になったらゲームが止まる、つまりゲームオーバーになるプログラムができました。

「ミス」の上限になった場合、「背景」を作成する

ただゲームが止まっただけでは味気ないので、「ミス」の「変数」が「3」になった場合、ゲームオーバーになったことがわかるように「背景」が変わるようにします。

まず、ゲームオーバーの背景を作っていきます。
画面右下、背景のところから「描く」をクリックします。

画面が遷移し、「背景」を描く画面になります。
ツールのところから「四角形」のアイコンをクリックします。

左上から右下にドラッグで描画し、全体が覆うようにします。

真っ黒の画面にしたいので、「塗りつぶし」のところをクリックし、出てきたスライダーを全て右にします。

最初に描画したときは紫だったものが黒にすることができました。

続けて、「Game Over」の表示もしたいので、文字を「背景」に追加していきます。
「T」のアイコンをクリックします。

今度は先に色を変更します。
「塗りつぶし」をクリックし、一番上は左いっぱいにスライド、二番目と三番目は右いっぱいにスライドします。これで赤色の文字で入力することができます。

画面中央辺りで、「Game Over」と入力します。ずれてもドラッグで調整できます。

ゲーム中の「背景」も変えていきます。
真っ白の画面は必要ないので、「背景1」の右上の「ゴミ箱」アイコンをクリックして削除しておきます。

その一番下に「背景を選ぶ」があるので、クリックします。

画面が遷移し、「背景」の一覧が表示されます。
今回は、「Blue Sky」という「背景」を使いたいので、見つけてクリックします。

クリックできたら、画面が戻り「Blue Sky」の背景が追加されていることがわかります。

「ミス」の上限になった場合、「背景」を変更する

プログラムで「背景」が切り替わるようにしていきます。

先ほどまで「背景」をさわっていたので、作成していたブロックの表示がないと思います。
スプライトのところから「Apple」をクリックして選択します。

作成していたブロックが表示されます。

「背景」を最初は「Blue Sky」にしておきたいので、「見た目」から「背景をBlue Skyにする」をドラッグし、「ミスを0にする」の下に入れます。

続けて「ミス」の「変数」が「3」になったら、「背景」を変えたいので、
「見た目」から「背景をBlue Skyにする」をドラッグし、「もしミス=3」の中、一番上に入れます。
入れたあと、「Blue Sky」のところをクリックし、「背景2」に変更します。

「ミス」の「変数」をカウントさせることを忘れていたので、
「変数」のところから 「スコアを1ずつ変える」をドラッグし、「もし-160>y座標なら」の中、一番上に入れます。入れたあと「スコア」をクリックし「ミス」に変更します。

動作確認してみます。

ステージのをクリックし、ゲームをしてみます。
「リンゴ」のスプライトに触れることができなかった場合、「ミス」の変数が「1」ずつ加算されていき、「3」になったとき「背景」が「Game Over」になりゲームも止まりました。

まとめ

  • 「変数」を使ってゲームのスコアをつけることができる
  • 「変数」を使ってゲームのミスをつけ、条件分岐させることができる
  • 「背景」を作成して、「変数」の数字の状態によって切り替えることができる

「変数」の簡単な紹介でしたが、「変数」が持つ数値とその数値の条件を判定することによって「スコア」や「背景」を切り替え、よりゲーム性を高めることができます。
もっと多くの「変数」を使って、より複雑なゲームも作成することができるので是非チャレンジしてみてください。