Scratchの3つの「変数」とは?リストやハイスコア・スライダーを使う方法

Scratchでゲームを作る時に、点数が入るようにするには「変数」ブロックを使います。Scratchの3つの変数「グローバル変数」「ローカル変数」「クラウド変数」の違いとスライダーの使い方を紹介します。

変数とは

変数とは、「変更できる値」のことです。変数には名前が付けられ、数値や文字列などのデータが保持されます。変数は数値を入れておく「箱」のようなもので、Scratchでゲームのスコアを作成する時は「変数」を使います。

ハートを獲得するゲーム【Scratch】の画像

Scratchで変数を作る方法

スクリプトの「データ」にある「変数を作る」をクリックします。新しい変数名に「点数」と入力して、「すべてのスプライト用」にチェックを入れます※。「OK」をクリックしましょう。※「すべてのスプライト用」にチェックを入れると、すべてのスプライトに変数が適用されます。

変数の作り方【Scratch】の画像

新しい変数の「点数」が作成されました。一番上の「点数」の左にチェックが入っていますが、ここにチェックが入っているとステージ上に変数が表示されるようになります。チェックを外すと、ステージ上に変数が表示されなくなります。

変数の作り方【Scratch】チェックの有無の画像

今回は、点数として変数をステージに表示させたいのでチェックを入れて変数を表示させます。

コードを作成する

スタートがクリックされたときに「0点」になるように、「点数を0にする」のブロックを「🚩がクリックされたとき」の下に入れましょう。このブロックを入れないと、前回遊んだときにに獲得した点数からゲームが始まってしまいます。これで、スタートをクリックすると点数がリセットされるようになりました!ハートを獲得するゲーム【Scratch】コードの画像

「もしハートに触れたら」という当たり判定を使って、スクラッチキャットがハートに触れたら1点入る変数プログラムを作成します。「点数を1ずつ変える」のブロックの下に「1秒待つ」ブロックを入れることで、ねこがハートに触れたときに連続して(2~3点一気に)点数が入ってしまうことを防いでいます。

Scratchの3つの変数とは

Scratchの変数には、「グローバル変数」「ローカル変数」「クラウド変数」の3つの変数があります。ひとつひとつ違いを見ていきましょう。

グローバル変数

Scratchで変数を作ると、「全てのスプライト用」にチェックが入っています。このまま変数を作ると変数がすべてのスプライトに適用される「グローバル変数」になります。

クラウド変数の画像

さきほどのゲームはグローバル変数を使って作成しているので、他のスプライトを追加しても変数が適用されます。変数をグローバル変数にすることで、Gobo(黄色のスプライト)にも変数が適用されてます。Goboにもスクラッチキャットと同様のスクリプトをコピーすれば、スクラッチキャットがハートに触れた数と黄色いスプライトがハートに触れた数の合算が点数(変数)として表示されます。

ハートをキャッチするゲーム(Scratch)のGIF画像

ローカル変数

変数を作る際に、「このスプライトのみ」にチェックを入れると「ローカル変数」になります。ローカル変数にすると、このスプライトにしか変数が適用されなくなります。

ローカル変数の画像
たとえば、ローカル変数を適用したスクラッチキャット(上)を複製します。灰色のスクラッチキャットは、スクリプトもコピーされているので同じをしますがハートに触れても点数が入りません。
変数を他のスプライトに干渉されたくない場合には、ローカル変数を使いましょう。

ハートを獲得するゲーム【Scratch】のGIF画像(ローカル変数)

クラウド変数

Scratcher(スクラッチャー)は「クラウドデータ」を作成することが出来ます。クラウドデータはその名の通りデータをクラウド(インターネット上)に保存する機能ですが、クラウド変数を作成することによって全てのScratcherがそのデータを参照できるようになります。

クラウドデータは、ハイスコアを作成するときに使えます。例えば、Aさんがこのゲームで遊んで14点獲得したとします。Bさんが挑戦したら、35点獲得できました。Cさんは25点獲得しました。すると、ハイスコアはBさんの35点ということになります。クラウド上に常にハイスコアのデータが保存されているので、違う場所で同じゲームを遊んでもハイスコアが共有されるようになります。

クラウド変数の作り方

グローバル変数で新しい変数を作るときに、「クラウド変数(サーバーに保存)にチェックを入れて「OK」をクリックすることでクラウド変数が作成できます。

クラウド変数(ハイスコア)の画像

ハイスコアのプログラム例

上のピンポンゲームのプログラムは、黄色のボールが下の赤い線に触れるとゲームオーバーになります。「黄色のボールが赤い色に触れたらゲームオーバーを送る」というスクリプトを作成します。

プレイヤーがはハイスコアを更新したら、その点数が「ハイスコア」となるプログラムも作成します。プレイヤーは、ハイスコアを目指してゲームができるので熱くなってしまいます!

クラウド変数を作成できる条件

Scratchのプロフィール画面を開くと、ニックネームの下に「Scratcher(スクラッチャー)」の称号があります。

※Scratchを始めたばかりの人は、この称号が「New Scratcher」になっていますが作品を作ったり他の人と交流していたりするとScratch teamから「Scratcherへの招待」というアラートが届きます。このアラートが届くと、称号が「New Scratcher」から「 Scratcher」へ変わり、クラウド変数が作成できるようになります。

Scratchでリストを作る方法

変数をマスターしたら、次に挑戦したいのは「リスト」です。リストは、本格的なプログラミング言語でいうところの「配列」になります。おみくじゲームを使ってリストを解説していきます。おみくじの結果を入れておく「箱」がリストになります。変数カテゴリにある「リストを作る」をクリックしましょう。リスト名に「おみくじ」を記入して、「OK」をクリックします。

おみくじ(リストの作り方)【Scratch】の画像

リストに、「大吉」「中吉」「小吉」「吉」「末吉」「凶」の6つのデータを追加します。データを追加するときは、「なにかをおみくじに追加する」のブロックを使います。「なにか」の部分にそれぞれ「大吉」「中吉」「小吉」「吉」「末吉」「凶」と入力します。このおみくじリストのデータのどれか1つを、ねこが言うようにします。乱数を使って、リストの中からランダムに言うプログラムを作成します。「1番目(おみくじ)」のブロックを「~と2秒言う」のブロックの中に組み込みましょう。

おみくじ(リスト)の作り方のコードの画像1おみくじの結果がランダムになるように、乱数ブロックを使います。「1から10までの乱数」の「10」の数字を「6」に変更します。
おみくじ(リスト)の作り方のコードの画像2

スタートをクリックしたときに、おみくじリストの中身を空っぽにしたいので、「おみくじ▼のすべてを削除する」ブロックを追加しておきます。

おみくじ(リスト)の作り方のコードの画像3スタートをクリックすると、ねこがおみくじリストにあるデータをランダムに言うようになります。ねこがおみくじの結果を2秒言った後は、おみくじリスト内のデータが空っぽになります。

リストのリセットの画像

Scratch変数「スライダー」を表示する方法

変数は、スライダー表示にして変数を自由に変えることもできます。ステージ上の変数は、デフォルトで「変数名+変数」で表示されます。ステージ上で変数をダブルクリックすると、「変数」のみの表示に切り替わります。もう1度ダブルクリックしてみると、変数がスライダー表示になります!

変数スライダー(Scrtch)のGIF画像

つまみをマウスでドラッグすることで、変数の値が変化します(上のGIF画像は日経BP社の「小学生からはじめるわくわくプログラミング2 」に掲載されているプログラムです)。

まとめ

Scratchには、「グローバル変数」「ローカル変数」「クラウド変数」の3つの変数があります。ゲームで使いたい用途によって利用する変数が変わってきますので、それぞれの特性をよく理解して変数を使いましょう。「リスト」は、データ(変数)を複数入れておく箱です。データは、乱数と組み合わせることで面白いゲームが作れますのでどんどん活用してみて下さいね。

ScratchはMIT Media LabのLifelong Kindergarten Groupによって開発されました。https://scratch.mit.edu/を参照してください。

フォローしてくれたら嬉しいです(*’-‘*)ノ