最終更新日 2025年5月11日 by toytune
スクラッチはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。
もくじ
はじめに
プログラミングには「変数(へんすう)」という、とても大事な仕組みがあります。ざっくり言うと「文字や数字などを入れておける箱」のようなもので、その中身は自由に変えることができます。
たとえば、ゲームの「スコア」やキャラクターの「ヒットポイント」などは、変数の中に入れておくことが多いです。そして、変数の値によって表示を変えたり、イベントを発生させたりすることもできます。
今回は、変数のしくみを体験できるように、矢印のスプライトをクリックすると数が増えたり減ったりする「カウントアップ・カウントダウン」のプログラムを作ってみましょう!
このページでできるようになること
- スクラッチで変数を作れるようになる
- スコアや時間を表示する方法がわかる
- 変数を使って数字を増やすしくみを作れる
▼ 今回作成するプログラム(の旗をクリックして動作を確認することができます)
タイマーを使った変数の使い方については別記事でも紹介しています。
スプライトを変更して、クローンで増やしてみよう
まず、初期設定から始めます。
今回は、新しくプロジェクトを作ったときにある「ネコ」のスプライトは使わないので、スプライトと背景のセクションから、「ネコ」のスプライトの右上にある「ゴミ箱」のアイコンをクリックし削除しておきます。
次に今回使用するスプライトを追加していきます。画面右下の「スプライトを選ぶ」をクリックします。

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

「Arrow1」のスプライトを選択すると、コードの画面(最初の画面)に戻ります。
先ほど選択した「Arrow1」の矢印のスプライトが選択されている状態なので、そのままプログラムを作っていきます。
このプログラムがスタートさせるのは、ステージのがクリックされたときにしたいので、
「イベント」から「が押されたとき」のブロックをドラッグします。

今回、カウントアップ(足し算)と、カウントダウン(引き算)の2種類のスプライトを表示させていきます。今回は解説しやすいよう、スプライトの切り替えが無いようにしたいので、矢印のスプライトをクローン(コピー)するブロックを利用して、2つのスプライトを表示させます。
「制御」から「自分自身のクローンを作る」をドラッグし、「が押されたとき」のブロックの下にくっつけます。

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

スプライトの見た目を変えていきます。左側のスプライトはカウントアップ(足し算)にしたいので、矢印が上向きのものにします。
「見た目」から「コスチュームをarrow1-dにする」をドラッグし、「x座標を-80、y座標を0にする」の下にくっつけます。
一旦これで、カウントアップ(足し算)側の初期設定のプログラムは完了です。
今度は「クローン(コピー)」された側のスプライトのプログラムを作っていきます。

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

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

クローンされた側は、カウントダウン(引き算)にしたいので、下向き矢印の見た目にします。
「見た目」から「コスチュームをarrow1-dにする」をドラッグし、「x座標を0、y座標を0にする」の下にくっつけます。
このままでは上向き矢印になるので、「arrow1-d」のところをクリックし、「arrow1-c」に変更します。

これで初期状態のプログラムは完成したので、ここまでの表示をステージで確認してみましょう。
ステージのをクリックします。矢印のスプライトがクローン(コピー)され、上下それぞれの場所に表示されています。
今度は、このスプライトに変数を割り当て、条件にマッチしたら、カウントアップ(足し算)、カウントダウン(引き算)できるようにしていきます。

クリックで数値を変えるプログラムを作ろう
「が押されたとき」から始まるブロックのかたまりと、「クローンされたとき」から始まるブロックの2つのかたまりが現在あります。その両方に共通する条件のプログラムを作っていきます。
「制御」から「ずっと」をドラッグし、適当な場所におきます。

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

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

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

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

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

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

もう一つの方は、「クローンされたとき」のブロックのかたまりの「コスチュームをarrow1-cにする」の下にくっつけます。
これでそれぞれの条件がブロックに反映されました。
今度はこの条件の中に変数を割り当てて、その条件になったときカウントアップ(足し算)か、カウントダウン(引き算)かを指定すれば完成です。

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

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

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

変数を使って、数を変えるプログラムにしよう
変数をプログラムの中に適応させていきます。
まず、スタート時のカウンターは、最初は「0」から始めたいので、その初期状態を決めます。「変数」から「カウンターを0にする」をドラッグし、「が押されたとき」の下に入れます。

次に「変数」から「カウンターを1ずつ変える」をドラッグし、「もしマウスのポインターに触れたかつマウスが押されたなら」の中に入れます。
こちら側はカウントアップ(足し算)にしたいので、「カウンターを1ずつ変える」の「1」という数値はこのままで構いません。1回クリックしたら、1つ増えるということになります。

但し、「ずっと」の中にいるので、一瞬で4桁の数字にカウントアップ(足し算)するので、それを防ぐために工夫をしていきます。
「制御」から「1秒待つ」をドラッグし、「カウンターを1ずつ変える」の下にくっつけます。1秒のままでは少し長いと感じるかもしれないので、半分の「0.5」に変更しておきます。
これで1回クリックしたら、0.5秒待ったあと、1つカウントアップされます。

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

同じくこのままでは一瞬で4桁ほどカウントダウン(引き算)するので、0.5秒待つブロックを入れていきます。
「制御」から「0.5秒待つ」をドラッグし、「カウンターを-1ずつ変える」の下にくっつけます。
これで今回のプログラムは完成です。

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

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

まとめ
- 変数は文字や数字を入れておける「箱」
- プログラムの中で、変数の中身を自由に変えられる
- 条件に応じて変数を増やしたり減らしたりできる
- クローンを使えば、1つのスプライトから複数を作ることができる
今回はシンプルな「カウントアップ/カウントダウン」を作って、変数のしくみを体験しました。
これを応用すれば、「スコアが増える」「HPが減る」といったゲームづくりにも使えるようになります! ぜひ、いろいろ試してみてくださいね!





