スクラッチの手引き

スクラッチで時間経過によって「変数」をカウントアップ・カウントダウンするプログラムを作ろう

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

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

はじめに

プログラミングでは「変数」というものを使います。これはざっくり言うと「文字や数値などを入れておける箱」のようなものです。この「変数」の中身は、自由に書き換えることができるので、たとえば「ゲームのスコア」や「HP(ヒットポイント)」などを管理するのに使われます。

また、条件分岐と組み合わせれば、「変数」の値によって表示を変えたり、イベントを発生させたりすることもできます。

「変数」についての基本的な使い方は、以下の記事でも紹介していますが、今回はこの「変数」を使って、時間の経過にあわせてカウントアップ(加算)やカウントダウン(減算)するプログラムを作ってみましょう。

手動でのカウントアップやカウントダウンの方法について知りたい方は、こちらの記事をご覧ください。

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

タイマーでカウントアップするプログラムを作ろう

まずは時間の経過にあわせて「カウント」していくプログラムを作ります。

先ず起点となる「が押されたとき」のコードブロックをドラッグします。

旗が押されたときをドラッグ

処理自体はずっと続けたいので、下に「ずっと」のコードブロックをドラッグしくっつけます。

ずっとをドラッグし旗が押されたときの下にくっつける

「変数」を追加していきます。コードブロックの中の「変数」のボタンをクリックします。

変数を作るのボタンをクリック

「変数」を作るモーダルが表示されます。
「新しい変数名」にはわかりやすい名前として、今回は「カウント」と入力します。今回の「変数」はすべてのスプライトで使うので「すべてのスプライト用」をクリックで選択します。できたら最後に右下の「OK」のボタンをクリックします。

新しい変数名にカウントと入力し、すべてのスプライト用のラジオボタンをクリックにし、最後にOKをクリックする

これで「カウント」という「変数」が追加され、ステージにもカウントが表示されました。

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

プログラムが始まったときの「カウント」の状態は「0」にしたいので、「カウントを0にする」のブロックをドラッグし、「が押されたとき」のコードブロックの下に入れます。

カウントを0にするをドラッグし旗が押されたときの下い入れる

今回、時間の経過で「1秒待つ」を「ずっと」の中に入れます。
これで「1秒待つ」の下に何かしらのコードブロックを入れると、1秒毎に繰り返されるプログラムのできあがります。

1秒待つをドラッグしずっとの中に入れる

今回は「カウント」の「変数」を1ずつ変えていきたいので、
「カウントを1ずつ変えるのブロックをドラッグし、「1秒待つ」の下にくっつけます。

カウントを1秒ずつ変えるをドラッグしずっとの中、1秒待つの下に入れる

これでカウントされるプログラムは完成です。ステージで動作を確認してみましょう。
ステージのをクリックします。1秒経過したらカウントが1つずつ増えていきます。

ステージの旗をクリックすると1秒ごとに1つずつカウントが増える

タイマーでカウントダウンするプログラムを作ろう

今度は、カウントダウン(数を減らしていく)プログラムを作ってみます。先ほど作ったコードをそのまま活用できるので、「複製」機能を使って効率よく作っていきましょう。

複製する方法は、複製したい先頭のコードブロックを右クリックして「複製」をクリックすることで複製ができます。
今回は、「が押されたとき」のコードブロックを右クリックして、「複製」をクリックします。

旗を押したときを右クリックし表示されたメニューの中から複製をクリック

複製したものを配置するには、空いているスペースをクリックすることで複製したものを配置します。下記の図では右側のスペースに配置しました。

空いてるスペースをクリックすると同じものが複製された

カウントダウン用の変数を作りますので、「変数を作る」をクリックします。

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

カウントのときと同じくモーダルが表示されます。
新しい変数名にはわかりやすく「カウントダウン」という名前をつけます。
同じく「すべてのスプライト用」をクリックで選択し、できたら右下の「OK」をクリックします。

新しい変数名にカウントダウンと入力しすべてのスプライト用のラジオボタンをクリック、最後にOKをクリック

では、複製した方のコードブロックの「変数」を新しく作成した「カウントダウン」の「変数」に置き換えていきます。

「カウントを0にする」の「カウント」をクリックし「カウントダウン」をクリックで選択します。

旗が押されたときのすぐ下にあるカウントを0にするのカウントをクリックし、表示された中からカウントダウンをクリック

「カウントを1ずつ変える」のところも同じく「カウント」をクリックし、「カウントダウン」をクリックで選択します。

1秒待つの下のカウントを1ずつ変えるのカウントをクリックし表示された中からカウントダウンをクリック

「0」の状態からカウントダウンすると、いきなりマイナスになるので、今回はわかりやすく「10」に変更したいと思います。「カントダウンを0にする」の「0」を「10」に変更します。

最後に「カウントダウンを1ずつ変える」の「1」を「-1」に変更し、カウントダウンするように変更します。

カントダウンを0にするの0を10に変更。カウントダウンを1ずつ変えるの1を-1に変更

動作確認をしてみます。をクリックします。

「カウント」の方は1秒毎にカウントが1ずつ増えていき、「カウントダウン」は1秒毎にカウントが1ずつ減っていきます。

ステージの旗をクリックするとカウントは1秒毎にカウントアップされ、カウントダウンは1秒毎にカウントダウンされる

まとめ

今回のポイントをふりかえりましょう。

  • 「ずっと」の中に「1 秒待つ」を入れることで、時間の経過を使った繰り返し処理ができる
  • 「変数」を使えば、カウントやカウントダウンの値を記録・表示できる
  • 同じようなコード構成は「複製」機能で効率よく再利用できる

また、「1 秒待つ」の数値を変更することで、たとえば「0.5」にすれば0.5秒ごと、「10」にすれば10秒ごとの処理も可能になります。いろいろ試して、使い分けてみてください。