Scratchはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。
もくじ
はじめに
「変数」を使うことで、現在のゲームの状態を保存し、スコアやゲームオーバーの条件として利用することができます。「変数」とは数値や文字を保存しておける「箱」のようなものです。
ここでは、以前作成した「リンゴ」のスプライトをマウスポインターで触れたら消える簡単なゲームに「変数」を追加し、スコアが表示されるようにします。またミスをカウントする変数も追加することで「ゲームオーバーの背景」に切り替わるようにすることで、「変数」の使い方や、「条件分岐」の方法を学習していこうかと思います。
」の方法を学習していこうかと思います。
また「変数」については、こちらの記事でも解説しておりますのでご参照ください。
ゲームオーバーの場合の「背景」を切り替えるものもこちらの記事でも紹介しております。
今回の前提条件
下記画像の状態からはじめていきます。
まだの方は、先にこちらを紹介した記事はこちらを是非ご参照ください。
タイトル:Scratchに「ブロック定義」を使って、同じ処理をするプログラムをまとめる
![](https://toytune.com/wp-content/uploads/2022/10/00_function_basic_add_variable.jpeg)
「スコア」の変数を作る
まず、「スコア」を入れていく「変数」を作成していきます。
画面左側に「変数」という項目があるのでクリックし、その中の「変数を作る」をクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/01_function_basic_add_variable.jpeg)
画面が遷移し、変数を作る画面になります。
「変数」の名前を「スコア」とし、右下の「OK」のボタンをクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/02_function_basic_add_variable.jpeg)
この時点でステージを確認してみます。
「スコア 0」といった表示があります。この表示は隠すこともできますが、今回は「スコア」として表示したいのでこのままにします。
![](https://toytune.com/wp-content/uploads/2022/10/03_function_basic_add_variable.jpeg)
「変数」の設定をプログラムに追加していきます。
まず、「スコアの変数」の初期状態は「0」にしたいので、「変数」のところから、「スコアを0にする」をドラッグし、「が押されたとき」の下に入れます。
続けて、マウスポインターに触れた場合は、スコアとして加算したいので、
「変数」のところから「スコアを1ずつ変える」をドラッグし、「もしマウスのポインターに触れたなら」の中、一番上に入れます。
![](https://toytune.com/wp-content/uploads/2022/10/04_function_basic_add_variable.jpeg)
「スコア」の「変数」の動作を確認してみます。
ステージのをクリックし、ゲームを開始します。
「スコア」の表示は最初は「0」、マウスポインターで「リンゴ」のスプライトに3回触れると、「スコア」の表示は「3」になりました。
![](https://toytune.com/wp-content/uploads/2022/10/05_function_basic_add_variable.jpeg)
「ミス」の変数を作る
このままだと、永遠にゲームが終わらないので、「ミス」した場合の変数と、その条件を追加して、ゲームオーバー(ゲームが停止)されるようにします。
「ミス」をカウントする「変数」を作りたいので、「スコア」と同じように
「変数」をクリック、次に「変数を作る」をクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/06_function_basic_add_variable.jpeg)
画面が遷移します。「変数」の名前はわかりやすく「ミス」にします。
入力できたら右下の「OK」をクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/07_function_basic_add_variable.jpeg)
「スコア」の「変数」を作った際の解説は飛ばしましたが、「変数」のところをみると、「スコア」と「ミス」の変数が追加されていることがわかります。
余談ですが、「チェックマーク」を外すと、ステージから表示は消えます。
もし「チェックマーク」を外してステージから表示を消したとしても、その変数は動いているのでそこだけ注意してください。
![](https://toytune.com/wp-content/uploads/2022/10/08_function_basic_add_variable.jpeg)
「ミス」の変数をプログラムに追加していきます。
「ミス」の「変数」も「スコア」と同じように最初は「0」にしておきたいので、
「変数」から「スコアを0にする」をドラッグし、最初に入れた「スコアを0にする」の下に入れます。
入れたあと、「スコア」のところをクリックし、「ミス」に変更します。
![](https://toytune.com/wp-content/uploads/2022/10/09_function_basic_add_variable.jpeg)
「ミス」の場合の条件と処理を作る
「ミス」の条件を作っていきます。
今回は、「リンゴ」のスプライトがマウスポインターで触れることができずに下まで落ちてしまった場合を
「ミス」と定義し、その条件をプログラムしていきます。
「制御」から「もし〜なら」をドラッグし、「ずっと」の一番下にいれます。
![](https://toytune.com/wp-content/uploads/2022/10/10_function_basic_add_variable.jpeg)
次に「演算」から「〜 = 50」のブロックをドラッグし、「もし〜なら」の「〜」にドラッグします。
![](https://toytune.com/wp-content/uploads/2022/10/11_function_basic_add_variable.jpeg)
「変数」から「ミス」をドラッグし、「もし〜=50なら」の「〜」に入れます。
そのあと今回は「3」になった場合、ゲームオーバーにしたいので、「50」のところを「3」に変更します。
![](https://toytune.com/wp-content/uploads/2022/10/12_function_basic_add_variable.jpeg)
この条件になった場合、ゲームを止めたいので、「制御」から「すべてを止める」をドラッグし、
「もしミス=3なら」の中に入れます。
これで「ミス」が「3」になったらゲームが止まる、つまりゲームオーバーになるプログラムができました。
![](https://toytune.com/wp-content/uploads/2022/10/13_function_basic_add_variable.jpeg)
「ミス」の上限になった場合、「背景」を作成する
ただゲームが止まっただけでは味気ないので、「ミス」の「変数」が「3」になった場合、ゲームオーバーになったことがわかるように「背景」が変わるようにします。
まず、ゲームオーバーの背景を作っていきます。
画面右下、背景のところから「描く」をクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/14_function_basic_add_variable.jpeg)
画面が遷移し、「背景」を描く画面になります。
ツールのところから「四角形」のアイコンをクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/15_function_basic_add_variable.jpeg)
左上から右下にドラッグで描画し、全体が覆うようにします。
![](https://toytune.com/wp-content/uploads/2022/10/16_function_basic_add_variable.jpeg)
真っ黒の画面にしたいので、「塗りつぶし」のところをクリックし、出てきたスライダーを全て右にします。
![](https://toytune.com/wp-content/uploads/2022/10/17_function_basic_add_variable.jpeg)
最初に描画したときは紫だったものが黒にすることができました。
![](https://toytune.com/wp-content/uploads/2022/10/18_function_basic_add_variable.jpeg)
続けて、「Game Over」の表示もしたいので、文字を「背景」に追加していきます。
「T」のアイコンをクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/19_function_basic_add_variable.jpeg)
今度は先に色を変更します。
「塗りつぶし」をクリックし、一番上は左いっぱいにスライド、二番目と三番目は右いっぱいにスライドします。これで赤色の文字で入力することができます。
![](https://toytune.com/wp-content/uploads/2022/10/20_function_basic_add_variable.jpeg)
画面中央辺りで、「Game Over」と入力します。ずれてもドラッグで調整できます。
![](https://toytune.com/wp-content/uploads/2022/10/21_function_basic_add_variable.jpeg)
ゲーム中の「背景」も変えていきます。
真っ白の画面は必要ないので、「背景1」の右上の「ゴミ箱」アイコンをクリックして削除しておきます。
![](https://toytune.com/wp-content/uploads/2022/10/22_function_basic_add_variable.jpeg)
その一番下に「背景を選ぶ」があるので、クリックします。
![](https://toytune.com/wp-content/uploads/2022/10/23_function_basic_add_variable.jpeg)
画面が遷移し、「背景」の一覧が表示されます。
今回は、「Blue Sky」という「背景」を使いたいので、見つけてクリックします。
![](https://toytune.com/wp-content/uploads/2022/10/24_function_basic_add_variable.jpeg)
クリックできたら、画面が戻り「Blue Sky」の背景が追加されていることがわかります。
![](https://toytune.com/wp-content/uploads/2022/10/25_function_basic_add_variable.jpeg)
「ミス」の上限になった場合、「背景」を変更する
プログラムで「背景」が切り替わるようにしていきます。
先ほどまで「背景」をさわっていたので、作成していたブロックの表示がないと思います。
スプライトのところから「Apple」をクリックして選択します。
![](https://toytune.com/wp-content/uploads/2022/10/26_function_basic_add_variable.jpeg)
作成していたブロックが表示されます。
「背景」を最初は「Blue Sky」にしておきたいので、「見た目」から「背景をBlue Skyにする」をドラッグし、「ミスを0にする」の下に入れます。
![](https://toytune.com/wp-content/uploads/2022/10/27_function_basic_add_variable.jpeg)
続けて「ミス」の「変数」が「3」になったら、「背景」を変えたいので、
「見た目」から「背景をBlue Skyにする」をドラッグし、「もしミス=3」の中、一番上に入れます。
入れたあと、「Blue Sky」のところをクリックし、「背景2」に変更します。
![](https://toytune.com/wp-content/uploads/2022/10/28_function_basic_add_variable.jpeg)
「ミス」の「変数」をカウントさせることを忘れていたので、
「変数」のところから 「スコアを1ずつ変える」をドラッグし、「もし-160>y座標なら」の中、一番上に入れます。入れたあと「スコア」をクリックし「ミス」に変更します。
![](https://toytune.com/wp-content/uploads/2022/10/29_function_basic_add_variable.jpeg)
動作確認してみます。
ステージのをクリックし、ゲームをしてみます。
「リンゴ」のスプライトに触れることができなかった場合、「ミス」の変数が「1」ずつ加算されていき、「3」になったとき「背景」が「Game Over」になりゲームも止まりました。
![](https://toytune.com/wp-content/uploads/2022/10/30_function_basic_add_variable.jpeg)
まとめ
- 「変数」を使ってゲームのスコアをつけることができる
- 「変数」を使ってゲームのミスをつけ、条件分岐させることができる
- 「背景」を作成して、「変数」の数字の状態によって切り替えることができる
「変数」の簡単な紹介でしたが、「変数」が持つ数値とその数値の条件を判定することによって「スコア」や「背景」を切り替え、よりゲーム性を高めることができます。
もっと多くの「変数」を使って、より複雑なゲームも作成することができるので是非チャレンジしてみてください。