【Scratch入門】簡単なストップウォッチを作ってみる
※ 当ページには【広告/PR】を含む場合があります。
2021/03/21
今回も公開されているScratchプロジェクトの中からリミックスを行い、タイマー機能を利用したストップウォッチの基本的なプログラミングのポイントを取り上げてみます。
なお、リミックスするやり方に関しては以下の記事を参照ください。
ストップウォッチのScratchプログラミング例
こちらの方で公開されている
このストップウォッチはラップタイム記録機能も付いているので高性能なプログラムですが、今回のテクニック解説記事の中では基礎的な機能の作成のみにフォーカスしていきます。
具体的なプログラミングコードを覗く前に、ちょっとだけストップウォッチの使い方を解説しておきます。

プログラムをスタートし、
①
もう一度
①
さらにもう一度
①
①
時間の経過中に
②
なお、
③
クリア
Scratchでストップウォッチの作り方
ということで、これらの機能がどのように実装されているか、プロジェクトの中身の方で確認していきましょう。
スプライト
まずは素材の方をよく見て行きます。

まずストップウォッチを表示するスプライトの構造については、順に左から右に6桁のデジタル文字を担当する
10m
1m
10
1
0.1
0.01
この6つのデジタル文字のスプライトには
0〜9
2つのスイッチに関しては、
スイッチ左
スイッチ右
他には経過時間をリセットするボタンには
ボタンクリア
数字の表示の実装
まずは一番左の十分の桁の数値を表示しているプログラミングブロックは以下の図のようになります。

このプログラムで利用されている変数がいくつかあります。
各変数の役割を整理すると以下のようになっています。
それぞれの桁で数字を表示しているやり方はとてもシンプルで、
ストップウォッチ
10分の位の数字
1分の位の数字
10秒の位の数字
1秒の位の数字
0.1秒の位の数字
0.01秒の位の数字
例えば10分の位であれば、変数
ストップウォッチ
600
このストップウォッチでは1時間以上の時間は測れないので、ちょうど一時間で表示がゼロに戻ります。 ということで、
***を6で割った余り
0〜5
他の位の数字も同じ理屈で計算・表示されています。

ここでは詳しく説明しませんが、どういう計算になっているかはご自身で考えてみてください。
ボタン部分の実装
次にストップウォッチをスタート・ストップさせている
スイッチ右
ボタンクリア
まずスイッチ右のコーディングブロックを見ると以下のようになっていると思います。

ここでは
このスプライブロックが押されたとき
まず図の①の箇所で、変数
スイッチ
次に②の緑の矩形で囲った部分ですが、これはボタンを押されたときのアニメーション効果を演出している箇所です。
その中の③という箇所で処理を行っているわけですが、スイッチがオン(
スイッチ = 1
タイマー
もしそうでなければ、スイッチはオフ(
スイッチ = 0
スイッチを0にする
このプログラムのもっとも理解しておきたいプログラミング・ポイントがこの④のブロックです。 先程の
タイマー
まずストップウォッチが動作モードになると、内部のタイマーがリセットされて、プログラム全体に
スタート
そしてこの処理ブロック自身は、再び
スイッチ右
スイッチ = 0
〜まで繰り返す
ストップウォッチ
なお、ここでの変数
ホールド
スイッチ = 0
ホールド
以上の一連の動作によって、ストップウォッチがシンプルに作成されているようです。
まとめ
今回はScratchでタイマーを利用する応用例として、公開されるプロジェクトをリミックスして、ストップウォッチの作り方をざっと解説しました。
このテクニックを利用すると、ゲーム中の一時停止のような機能に応用できると思いますので、是非自分のものにして使ってみてください。