Scratch 簡単なタイマーをつくる方法
Scratch(スクラッチ)実践編ということで、簡単なタイマーをつくっていきます。
また、秒を分秒に変換する方法についても解説します。
以前記事にした、制限時間の作り方の考え方もご参考下さい。
完成形はこちらです。
何秒にセットするかを聞いて
150秒と入力されて
それを分秒に変換し
タイマーを動かします
スタートして
残り5秒になると・・・
秒を分秒に変換する
秒を分秒に変換する方法について、解説したのち、
タイマーをつくっていきます。
タイマーのつくり方だけを知りたい方は、スキップしてください。
手順1 変数「総秒数」「分」「秒」をつくる
変数を作るを押すと
新しい変数を作る画面が出てきますので
変数名「総秒数」「分」「秒」を、すべてのスプライト用で作成します。
変数について、詳しくはこちらから
手順2 総秒数をセットする
総秒数をセットします。
今回は150秒で作成します。
手順3 秒を分秒に変換します。
秒を分秒に変換するには次のように考えます。
分 総秒数を60で割って、端数を切り捨てた値
秒 総秒数を60で割った余り
このように書きます。
タイマーのつくり方
上記を踏まえ、タイマーをつくっていきます。
手順1 旗がクリックされたら、タイマーをリセットして、希望の時間にセットする
「何秒にセットしますか」と聞いて待つというコマンドは、
こちらのブロックを使っています。
このブロックを使うと、画面上に入力ボックスがでてきて
そこに入力した値が(答え)ブロックに入ってくるという仕組みです。
手順2 スプライトがクリックされたら、タイマーがスタートする
このスプライトがクリックされたら、「スタート」と言って、タイマーがスタートします。
1秒経つごとに、総秒数を減らしていき、その度に、分秒に変換します。
おまけ ブロック定義でスマートに
秒を分秒に変えるコマンドは、今回のプログラムで2回登場します。
冗長(じょうちょう)なので、1か所にまとめたいですよね。
そんなときに使うのが、ブロック定義です。
ピンクの「ブロック定義」の中に、「ブロックを作る」というボタンがあります。
ブロック名「秒を分秒に変換する」と入力し、
左下引数を追加をクリックして、引数(秒)を追加します。
このように、定義というブロックが出来上がりますので、
この中に処理の中身を書いていきます。
これで共通処理の定義が完成です。
後は、先ほどのコマンドから呼び出します。
同じ処理を1か所にまとめるというのは、プログラミングの基本です。
1か所にまとめることで、間違いがあったときの修正や、仕様の変更が容易だからです。
2か所にあると、どちらかは修正して、どちらかは修正できていなかったというような、不具合にもつながります。