Scratchの手引き

Scratchで時間経過で「変数」をカウントしたりカウントダウンするプログラムを作る

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

はじめに

プログラミングには「変数」というものがり、ざっくりいうと、「文字や数値などをいれておける箱」というイメージです。そして、この「変数」の中身はいろいろ書き換えることができます。例えば、「ゲームのスコア」だったり、「HP(ヒットポイント)」などを入れておくことなどできます。
また条件分岐を使うことで「変数」の中身に応じて、表示されるものや、発生するイベントを切り替えたりすることもできるということになります。

変数については、こちらの記事でも紹介していますが、今回は「変数」が時間の経過を使ってカウント(足し算)、カントダウン(引き算)されるプログラムを作ってみたいと思います。

また手動でのカウントアップや、カウントダウンはこちらの記事をご覧ください。

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

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

ベースとなるコードブロックを追加していきます。

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

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

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

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

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

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

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

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

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

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

今度は逆にカウントダウンするプログラムも作ってみます。
コードブロックの構成は先ほどのものと同じになるので、手間を省きたいところです。こういう場合は、先ほどのコードブロックをまとめて複製することができます。

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

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

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

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

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

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

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

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

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

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

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

まとめ

  • 「ずっと」の中に「1秒待つ」のブロックを入れることで時間経過を利用できる
  • 「変数」を作り、カウントやカウントダウンが格納されるようにする
  • 同じコードブロックの構成は、「複製」で手間を省く

「ずっと」と「1秒待つ」と「変数」の組み合わせで時間経過を使ってカウントしたり、カウントダウンするものができました。「1秒待つ」の「1」を変更することで、10秒待ったり、0.5にすると1秒の半分を待ったりすることができるので、適宜変更してみてください。

また、同じようなコードブロックをもう一つ作りたい場合は、「複製」を使うことで瞬時に同じコードブロックを作ることができます。コードブロックを組み立てるのも時間がかかります。手間が省けるところは「複製」を活用していきましょう。