Scratchを使ったプログラミングについて解説していくこのシリーズ第2回の今回は、「変数」を使ってスコアとライフを作る方法について解説していきます。
この記事を読むと、下のリンクにあるようなゲームを作ることができるようになります。

最初は難しいかもしれませんが、一度おぼえてしまえば、多くのゲームで得点やライフを作ることができるようになるので、ここで身につけておきましょう!
スクラッチについてわからないことがあったら、質問を送って下さい。
目次
まずは実験して変数がどんなものか確かめる
まずは実験して変数がどんなものか確かめてみましょう。
Scratchで新しいプロジェクトを開いたら、「コード」タブの中にある「変数」カテゴリを開きましょう。

次に、「変数」というブロックにチェックを入れると、右側の画面に「変数 1」と表示されると思います。

次に、変数カテゴリの中にある「変数を0にする」というブロックと、「変数を1ずつかえる」というブロックを出しましょう。

ここまでできたら、「変数を1ずつ変える」というブロックをポチポチとクリックしてみましょう。すると、画面の右にある変数の値が増えていくのがわかると思います。
次に、「変数を0にする」というブロックをクリックしてみましょう。変数の値が0になったと思います。

この仕組を使うと、スコアやライフ、タイマーなど、いろいろ便利なものを作ることができます。
変数を使ってシューティングゲームのスコアを作る
まずは、下のリンクのシューティングゲームで遊んでみてください。左右の矢印キーでロケットを動かし、スペースキーでビームを出して敵キャラの惑星を撃ち落とすゲームです。
https://scratch.mit.edu/projects/641366328/
このゲームは、敵をたおすことはできますが、スコア(得点)が数えられません。また、1回敵に当たっただけでゲームオーバーになってしまいます。
今回は、変数を使って、このゲームにスコアとライフを追加する方法を解説していきます。
まず、上のリンクのゲームを「リミックス」しましょう。
リミックスができたら、スコアをつくっていきます。
まずはじめに、自分のロケット(「Rocketship」スプライト」)に、「スコア」という変数をつくります。
変数というカテゴリから、「変数を作る」というボタンをクリックして、変数をつくっていきます。

次に、新しい変数名に「スコア」と名前をつけて、「OK」をクリックします。

これで、「スコア」という名前の変数を作ることができました。
続いて、敵をビームで倒したときに、「スコア」が1ずつ増えるようにします。
スペースキーを押して発射したビーム(「Lightning」スプライト)が敵キャラの惑星(「Planet2」スプライト)にぶつかると、敵キャラから「ビームが敵キャラにあたった」というメッセージが送られます。

この「ビームが敵キャラにあたった」というメッセーを受け取ったときに、「スコア」が1ずつ増えるプログラムを自分のロケットのコードにつくっていきます。
Rocketshipスプライトのコードタブを開き、イベントカテゴリから「メッセージを受け取ったとき」のブロックを出します。
ブロックを出したら、受け取るメッセージの内容を「ビームが敵キャラにあたったを受け取ったとき」に変更します。

続いて、 変数カテゴリから、「スコアを1ずつ変える」というブロックを取り出して、先ほどつくったメッセージのブロックの下につなげます。

スコアが増える仕組みはこれで完成ですが、このままだと問題があります。
この状態だと、前回プレイしたときにスコアが10点で終わったとすると、次にプレイしたときに10点からスタートしてしまいます。
これを避けるために、ゲームがはじまった時(緑の旗が押されたとき)に、スコアを「0」にするという処理を追加します。
Rocketshipプライトに、緑の旗が押されたときに、スコアを0にする、というプログラムを追加します。

すると、緑の旗を押してゲームをスタートするたびに、スコアが「0」からスタートするようになります。
このように、変数を使うときには、ゲームがはじまった時に変数がいくつからスタートするのかを決める処理を入れるのを忘れないようにしましょう。
変数を使ってライフをつくる
一度敵に当たっただけでゲームオーバーになってしまうと、ゲームとしては難しすぎます。
そこで、自分のロケットのライフを設定し、敵キャラに3回当たったらゲームオーバーになる仕組みを、変数を使ってつくってみましょう。
作り方は、スコアをつくったときとほとんど同じです。
まずは、「Rocketship」スプライトを開いて、「ライフ」という変数をつくります。

名前は「ライフ」にして、「OK」をクリックします。

次に、このライフ変数を使って、敵キャラに当たったときにライフが1ずつ減っていく仕組みを作ります。
敵キャラ(「Planet2」というスプライト)のコードの中に、「もしRocketshipに触れたなら」「ゲームオーバーを送る」というプログラムがあるので探しましょう。

「ゲームオーバー」というメッセージの名前の部分をクリックした後、続けて「新しいメッセージ」をクリックします。

メッセージの名前に「敵キャラに衝突した」と入力し、OKをクリックしましょう。

これで、自分のロケットが敵キャラにふれたときに、「敵キャラに衝突した」というメッセージが送られるようになりました。
この「敵キャラに衝突した」というメッセージを受け取ったときに、ライフが1ずつ減るというプログラムを追加していきます。
まず、Rocketshipスプライトのコードタブを開いて、イベントカテゴリから「メッセージをうけとったとき」というブロックを出し、「敵キャラに衝突した」というメッセージに変更します。

続いて、変数カテゴリーから、「変数を◯ずつ変える」というブロックを出して、先ほどの「敵キャラに衝突したとき」の下につなげます。
変数名は「ライフに」変更し、「ライフを-1ずつ変える」に変更します。

ここまでできたら、緑の旗を押してプログラムを動かしてみましょう。自分のロケットと敵キャラに当たったら、ライフが1ずつ減っていくのがわかると思います。
この状態だと、前回プレイしたライフの状態からゲームがスタートしてしまうので、ゲームがはじまったときには、必ずライフが3からスタートするようにします。

これで、ゲームがスタートしたときにライフが3からスタートして、1ずつ減っていく仕組みが完成しました。
ただし、この状態では、いつまでたってもゲームオーバーになりません。そこで、ライフが0になったら、ゲームオーバーになる処理を加えます。
演算から不等号のブロックを出して、ライフが1より小さくなったなら、「ゲームオーバー」というメッセージを送るというプログラムをつくります。

すると、ライフが「0」になると、ゲームオーバーという文字が出てきて、ゲームが終了するようになることがわかると思います。

スコア(得点)やライフ(機体の残り数)は、ゲームを作るときによく使う仕組みです。
ぜひこの機会に作り方をおぼえて、これから作るゲームに応用してみてください!
スクラッチについてのご質問を受けつけています
プログラミング教室MYLABでは、スクラッチについてのご質問を受けつけています。わからないことやうまく行かないことがありましたら、以下のフォームより送信して下さい。
※質問は、保護者の方から送信をお願い致します。
※ご質問の回答には、お時間を要することや、答えできないことがあることを、あらかじめご了承ください。
※ご質問の回答は、MYLABホームページ上に掲載致します。回答を掲載しましたら、メールにてご案内致します。
ゲーム制作やプログラミングをさらに学びたい方へ!
本ブログでは、Scratchを使ったゲーム制作の基本について解説していますので、ぜひご覧ください!
【初心者向け】簡単につくることができるスクラッチゲーム(1)ピンポンゲーム
【初心者向け】簡単につくることができるスクラッチゲーム(2)キャッチゲーム
【初心者向け】簡単につくることができるスクラッチゲーム(3)シューティングゲーム
【これができたら初心者卒業!】スクラッチを使った自動で動くCPUの作り方
【スクラッチゲームの作り方】はじめての乱数を使ったゲームの作り方
【スクラッチゲームの作り方】はじめての変数を使ったゲームの作り方
【スクラッチゲームの作り方】はじめてのクローンを使ったゲームの作り方
【スクラッチゲームの作り方】はじめての当たり判定を使ったゲームの作り方
「お家でやったけれども、うまくいかなかった」「さらに高度なことをやってみたい!」という方へ
最近は、プログラミングを学習するためのアプリや本、無料のプラットフォームも増えてきて、子どもがプログラミングを学習する機会や環境も整ってきました。
しかし、保護者の方とお話ししていると
- あきてしまって、長続きしなかった
- 本やアプリで自習してみたけど、うまくいかなかった
- 保護者の方がプログラミングの経験がなく、子どもに教えるのが難しい
といったお話をよくうかがうことも多いです。
そんな方は、一度当ブログを運営するプログラミング教室MYLABのレッスンを体験してみませんか?

MYLABのレッスンの特徴は以下のような特徴があります。
- お子さまが楽しくプログラミングを続けることができるカリキュラム
- 一人ひとりの「創りたい!」にこたえられる知識を持ち、成長をサポートできるメンター陣
- 初学者だけでなく、ロボコンにチャレンジしたり、本格的な3Dゲームをつくったりする上級コースまで継続できる
「本当に楽しめるのかな?」「うちの子に合うかしら?」「飽きっぽいうちの子が続けられるかしら?」と思う方もいるかもしれません。
そんな方は、ぜひ一度無料で開催している体験レッスンに来て、実際に体験してみてください!
ゲーム・プログラミング体験(90分)
- どんなゲームをつくることができるのか、まずは遊んでみる
- ミッションをクリアするためのアイデアを考える
- コーチのサポートを受けながら、自分のアイデアを実現する!
体験会では、お子さまが集中してプログラミングしたり、作品を作ったりしている普段とは違う姿をみられるはずです!
ご興味をもっていただいた方は、ぜひ下のボタンからお申し込みください!