スクラッチの手引き

スクラッチの「変数」を使って、カウントアップとカウントダウンのスプライトを作ろう!

最終更新日 2025年5月11日 by toytune

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

はじめに

プログラミングには「変数(へんすう)」という、とても大事な仕組みがあります。ざっくり言うと「文字や数字などを入れておける箱」のようなもので、その中身は自由に変えることができます。

たとえば、ゲームの「スコア」やキャラクターの「ヒットポイント」などは、変数の中に入れておくことが多いです。そして、変数の値によって表示を変えたり、イベントを発生させたりすることもできます。

今回は、変数のしくみを体験できるように、矢印のスプライトをクリックすると数が増えたり減ったりする「カウントアップ・カウントダウン」のプログラムを作ってみましょう!

このページでできるようになること
  • スクラッチで変数を作れるようになる
  • スコアや時間を表示する方法がわかる
  • 変数を使って数字を増やすしくみを作れる

▼ 今回作成するプログラム(の旗をクリックして動作を確認することができます)

タイマーを使った変数の使い方については別記事でも紹介しています。

スプライトを変更して、クローンで増やしてみよう

まず、初期設定から始めます。

今回は、新しくプロジェクトを作ったときにある「ネコ」のスプライトは使わないので、スプライトと背景のセクションから、「ネコ」のスプライトの右上にある「ゴミ箱」のアイコンをクリックし削除しておきます。

次に今回使用するスプライトを追加していきます。画面右下の「スプライトを選ぶ」をクリックします。

スプライトの右上のゴミ箱をクリックし削除。スプライトを選ぶをクリック

画面がスプライトの一覧へ遷移します。
その中から「Arrow1」という矢印のスプライトを探し、クリックで選択します。

Arrow1をクリック

Arrow1」のスプライトを選択すると、コードの画面(最初の画面)に戻ります。
先ほど選択した「Arrow1」の矢印のスプライトが選択されている状態なので、そのままプログラムを作っていきます。

このプログラムがスタートさせるのは、ステージのがクリックされたときにしたいので、
「イベント」から「が押されたとき」のブロックをドラッグします。

イベントから旗が押されたときをドラッグ

今回、カウントアップ(足し算)と、カウントダウン(引き算)の2種類のスプライトを表示させていきます。今回は解説しやすいよう、スプライトの切り替えが無いようにしたいので、矢印のスプライトをクローン(コピー)するブロックを利用して、2つのスプライトを表示させます。

制御」から「自分自身のクローンを作る」をドラッグし、「が押されたとき」のブロックの下にくっつけます。

制御から自分自身のクローンを作るをドラッグし旗が押されたときの下にくっつける

スプライトを表示する場所を決めます。
動き」から「x座標を0、y座標を0」をドラッグし、「自分自身のクローンを作る」の下にくっつけます。
次に位置を左側にしたいので、「x座標を0」の「0」を「-80」に変更してください。
もし、「y座標を0にする」が「0」になっていなければ「0」に変更してください。

動きからx座標を0、y座標を0をドラッグしx座標を-80に変更する

スプライトの見た目を変えていきます。左側のスプライトはカウントアップ(足し算)にしたいので、矢印が上向きのものにします。
見た目」から「コスチュームをarrow1-dにする」をドラッグし、「x座標を-80、y座標を0にする」の下にくっつけます。

一旦これで、カウントアップ(足し算)側の初期設定のプログラムは完了です。
今度は「クローン(コピー)」された側のスプライトのプログラムを作っていきます。

見た目からコスチュームをarrow1-dにするをドラッグしx座標を-80、y座標を0にするの下にくっつける

クローンされた側のスプライトを作る

「クローン(コピー)」された側のプログラムを作っていきます。

先ず、「クローン」されたタイミングで初期状態をつくっていくので、「制御」から「クローンされたとき」をドラッグします。ブロックを置く場所は適当な場所で構いません。

制御からクローンされたときをドラッグ

こちらのプログラムも位置を決めていきます。
動き」から「x座標を80、y座標を0」をドラッグし、「クローンされたとき」の下にくっつけます。
クローンされた側は、右側に表示したいので、「x座標を80」の「-80」を「80」に変更します。
もし「y座標を0にする」が「0」になっていなければ「0」に変更してください。

動きからx座標を80、y座標を0にするをドラッグ、クローンされたときの下にくっつける

クローンされた側は、カウントダウン(引き算)にしたいので、下向き矢印の見た目にします。

見た目」から「コスチュームをarrow1-dにする」をドラッグし、「x座標を0、y座標を0にする」の下にくっつけます。
このままでは上向き矢印になるので、「arrow1-d」のところをクリックし、「arrow1-c」に変更します。

見た目からコスチュームをarrow1-dにするをドラッグしarrow1-ちぇ変更。x座標を80、y座標を0にするの下にくっつける

これで初期状態のプログラムは完成したので、ここまでの表示をステージで確認してみましょう。
ステージのをクリックします。矢印のスプライトがクローン(コピー)され、上下それぞれの場所に表示されています。

今度は、このスプライトに変数を割り当て、条件にマッチしたら、カウントアップ(足し算)、カウントダウン(引き算)できるようにしていきます。

ステージの旗をクリックするとそれぞれの一にクローンされた矢印が表示される

クリックで数値を変えるプログラムを作ろう

が押されたとき」から始まるブロックのかたまりと、「クローンされたとき」から始まるブロックの2つのかたまりが現在あります。その両方に共通する条件のプログラムを作っていきます。

制御」から「ずっと」をドラッグし、適当な場所におきます。

制御からずっとをドラッグし適当な場所へ置く

次は「制御」から「もし〜なら」をドラッグし、「ずっと」の中に入れます。

制御からもし〜ならをドラッグしずっとの中に入れる

この「もし〜なら」に入る条件は、矢印のスプライトをクリックしたときにカウントアップ(足し算)したり、カウントダウン(引き算)させる条件を入れていきます。

演算」から「〜かつ〜」をドラッグし、「もし〜なら」の「〜」の中に入れます。

演算から〜かつ〜をドラッグし、もし〜ならの〜に入れる

具体的な条件を入れていきます。
調べる」から「マウスのポインターに触れた」を「〜かつ〜」の左側に入れます。
(右側でも構いません。)

調べるからマウスポインターに触れたならをドラッグしもし〜かつ〜ならの左側の〜に入れる

マウスポインターに触れただけでなく、クリックしたタイミングでカウントアップ(足し算)、カウントダウン(引き算)させるようにします。
調べる」から「マウスが押された」をドラッグし、「マウスのポインターに触れたかつ〜」の「〜」に入れます。

調べるからマウスが押されたをドラッグしもしマウスポインターに触れたかつ〜ならの右側の〜に入れる

これで条件部分の作成完了です。
それぞれに入れていきたいので、これを複製します。「ずっと」のブロックの右上辺りを右クリックして、「複製」をクリックします。

ずっとの左上辺りを右クリックし、表示されたメニューから複製をクリック

複製」されたものをら「が押されたとき」のブロックのかたまり側、の「コスチュームをarrow1-dにする」の下にくっつけます。

複製したものを旗が押されたときのずっとの中に入れる

もう一つの方は、「クローンされたとき」のブロックのかたまりの「コスチュームをarrow1-cにする」の下にくっつけます。

これでそれぞれの条件がブロックに反映されました。
今度はこの条件の中に変数を割り当てて、その条件になったときカウントアップ(足し算)か、カウントダウン(引き算)かを指定すれば完成です。

もう一つの方をクローンされたときのずっとの中に入れる

変数を作ってみよう

いよいよ「変数」を作っていきます。

今回は、カウントアップ(足し算)、カウントダウン(引き算)をするプログラムなので、数字を入れる「変数」を作るということになります。

画面左側の「変数」をクリックし、「変数を作る」をクリックします。

変数をクリックして、変数を作るのボタンをクリックする

画面が遷移し、「変数」を作るモーダル画面が表示されます。
新しい変数名:」のところは、変数の名前をいれます。何でもよいのですが、今回はわかりやすく「カウンター」という名前にします。

今回は、これだけで大丈夫なので「OK」をクリックします。

新しい変数名をカウンターと入力し、OKをクリック

ステージを確認してみましょう。
先ほど作成した「カウンター」の変数がステージ上に表示されています。
「変数」の表示は消すこともできますが、カウントアップ(足し算)、カウントダウン(引き算)されたときの「変数」の様子を見たいと思いますので、表示はこのままにしておきます。

ステージにカウンターが表示される

変数を使って、数を変えるプログラムにしよう

変数をプログラムの中に適応させていきます。

まず、スタート時のカウンターは、最初は「0」から始めたいので、その初期状態を決めます。「変数」から「カウンターを0にする」をドラッグし、「が押されたとき」の下に入れます。

変数からカウンターを0にするをドラッグ、旗が押されたときの下に入れる


次に「変数」から「カウンターを1ずつ変える」をドラッグし、「もしマウスのポインターに触れたかつマウスが押されたなら」の中に入れます。

こちら側はカウントアップ(足し算)にしたいので、「カウンターを1ずつ変える」の「1」という数値はこのままで構いません。1回クリックしたら、1つ増えるということになります。

変数からカウンターを1ずつ変えるをドラッグ、もしマウスのポインターに触れたかつマウスが押されたならの中に入れる

但し、「ずっと」の中にいるので、一瞬で4桁の数字にカウントアップ(足し算)するので、それを防ぐために工夫をしていきます。

制御」から「1秒待つ」をドラッグし、「カウンターを1ずつ変える」の下にくっつけます。1秒のままでは少し長いと感じるかもしれないので、半分の「0.5」に変更しておきます。
これで1回クリックしたら、0.5秒待ったあと、1つカウントアップされます。

制御から1秒待つをドラッグしカウンターを1ずつ変えるの下に入れ、1を0.5に変更する

次に「クローンされたとき」のブロックのかたまり側も同じようにカウント操作を入れていきます。

変数」から「カウンターを1ずつ変える」をドラッグし、同じく「もしマウスのポインターに触れたかつマウスが押されたなら」の中に入れます。
こちら側は、カウントダウン(引き算)になるので、「カウンターを1ずつ変える」の「1」を「-1」に変更します。

変数からカウンターを1ずつ変えるをドラッグ、もしマウスのポインターに触れたかつマウスが押されたならの中に入れ、1を-1に変更する

同じくこのままでは一瞬で4桁ほどカウントダウン(引き算)するので、0.5秒待つブロックを入れていきます。

制御」から「0.5秒待つ」をドラッグし、「カウンターを-1ずつ変える」の下にくっつけます。

これで今回のプログラムは完成です。

制御から0.5秒待つをドラッグしカウンターを-1ずつ変えるの下に入れる

動作確認してみよう

ステージのをクリックします。
まずカウントアップ(足し算)を試します。画像では右側の「上向き矢印」のスプライトを2回クリックしました。「変数」の数値が2つカウントアップ(足し算)され、「0」から「2」に変化しました。

ステージの旗をクリック上向の矢印を2回クリックすると2にカウントアップする

今度は、カウントダウン(引き算)を試します。右側の「下向き矢印」のスプライトを6回クリックすると、「2」から「-6」引き算されることになるので、「-4」になりました。

意図した通りにプログラムが動作しました。

下向き矢印を6回クリックすると-4にカウントダウンされる

まとめ

  • 変数は文字や数字を入れておける「箱」
  • プログラムの中で、変数の中身を自由に変えられる
  • 条件に応じて変数を増やしたり減らしたりできる
  • クローンを使えば、1つのスプライトから複数を作ることができる

今回はシンプルな「カウントアップ/カウントダウン」を作って、変数のしくみを体験しました。

これを応用すれば、「スコアが増える」「HPが減る」といったゲームづくりにも使えるようになります! ぜひ、いろいろ試してみてくださいね!