上のアイキャッチ画像はAIによって生成されました。
今回は、スクラッチ(Scratch)を使った「アナログ時計」の作り方を紹介します。
秒針、短針、長針の動きをプログラミングして、自分だけのオリジナル時計を作ってみましょう!
プログラミングを通じて時間の概念をより深く理解し、算数でつまづきがちな「時計算」の基本的な考え方を自然に学べます。
図やコード例を交えながら、わかりやすく解説していきますので、プログラミング初心者でも安心して取り組めますよ。
ぜひ、親子で一緒に挑戦して、プログラミングの楽しさを体験してみてください!
Scratchはインターネットにつながるパソコンから無料で利用できます。
Scratch公式サイト: https://scratch.mit.edu/
Scratchのアカウントの作り方と基本的な使い方は、下の記事で紹介しています。
アナログ時計の読み方をおさらい
「アナログ時計」は、3本の針で時間時間を教えてくれる時計です。
- 秒針:何秒かを教えてくれる針。60秒で1周します。
- 長針:何分かを教えてくれる針。60分で1周します。
- 短針:何時かを教えてくれる針。12時間で1周します。
これら3本の針の動きをプログラミングして、実際の時計のように動かしてみましょう。
また、時計の文字盤の目盛もプログラミングで描いてみます。
完成プログラム
完成した作品です。ハタをおして動かしてみてください。
完成したソースコードは下の通りです。
現在の時間を取得し、それぞれの針が12時の位置からどれくらい回転しているかを計算、針の向きを変えています。
秒針のプログラム
長針のプログラム
短針のプログラム
文字盤のプログラム
プログラミングの手順
秒針
コスチューム
1.スプライトを作る
「スプライトを選ぶ」→「描く」を選びます。
ネコのスプライトは消してOKです。
2.秒針をかく
直線ツールを使って秒針をかきます。
直線のはしをキャンバスの丸十字に合わせてください。ここを中心に針が回転します。
ペイントエディターのくわしい使い方は「【スクラッチ(Scratch)】絵を描いてスプライトや背景を作ろう(ベクター編)」で解説しています。
3.ステージにスプライトを配置する
ステージの中心(x座標0、y座標0)に、スプライトを配置し、向きを0にします。
スプライトの名前を「秒針」に変えましょう。
コード
1.イベントカテゴリにある「ハタが押されたとき」ブロックを出す
2.制御カテゴリにある「ずっと」ブロックを「ハタが押されたとき」の下に出す
3.針の向きを変える処理を追加する
動きカテゴリにある「( 90 )度に向ける」ブロックを出し、「ずっと」ブロックの中に入れましょう。
次に、何度に向けたらいいか考えましょう。「( 90 )度に向ける」ブロックの( 90 )の部分です。
秒針は1分で一周します。
つまり、60秒で360度回転するので、360度÷60秒で毎秒6度ずつ進んでいます。
1秒で6度、2秒で12度、3秒で18度……と進むので、秒針の角度は「現在の秒 × 6」で求められますね。
演算カテゴリの「( )*( )」を出して、左側に「現在の秒」ブロックを入れ、右側に6を入力しましょう。そして「( 90 )度に向ける」の90の部分に入れます。
「現在の秒」ブロックは、現在の秒を調べるブロックです。調べるカテゴリにある「現在の年」ブロックを出し、年の部分をクリックして、秒に変えましょう。
秒針のプログラムが完成しました。
長針
長針は1時間で一周します。
60分で360度回転するので、1分で6度(360度÷60分)進みます。
……秒針と似ていますね。秒針のスプライトをコピーして作りましょう。
コスチューム
1.秒針のスプライトを右クリックして「複製」を選びます。
2.秒針2という名前のスプライトができるので、スプライト名を「長針」に変更しましょう。
3.ステージの中心(x座標0、y座標0)に、スプライトを配置し、向きを0にします。
4.見た目を変更する
コスチュームから見た目を変更します。線の太さや色を変えて、秒針と区別できるようにしましょう。
コード
プログラムは、1ヵ所だけ変えればOKです。
何を変えたらよいか、自分で考えてみましょう!
短針
コスチューム
1.長針のスプライトを右クリックして「複製」を選びます。
2.長針2のスプライトができるので、スプライト名を「短針」に変更しましょう。
3.ステージの中心(x座標0、y座標0)に、スプライトを配置し、向きを0にします。
4.他の針と区別がつくようにコスチュームの見た目を変更しましょう。
コード
短針は12時間で一周するので、1時間で30度(360度÷12時間)進んでいます。
なので、角度は「 現在の時 × 30 」で求められますね。
「( 現在の時 ) * ( 30 )度に向ける」にすればよさそうですが……
実際に動かしてみてください。本物の時計とちがうところがありませんか?
本物の時計の短針は、1時間の間にもちょっとずつ進んでいますね。
60分で30度進むので、1分で0.5度(30度÷60分)進みます。
よって「((現在の時 * 30)+(現在の分 * 0.5)度に向ける」で角度が求められます。
文字盤を作る
ペイントエディターで文字盤を描くのも楽しいですが、プログラムを使って文字盤を描いてみませんか?
これから紹介するプログラムの動きをゆっくりにすると、こんな感じになります。
コスチューム
文字盤に使いたいスプライトを準備しましょう。
コード
「中心から外側へ移動 → スタンプ → 中心へもどる → 30度回す」を12回くり返します。
目盛は12個あるので、360度÷12で30度ずつ回します。
1.「ハタが押されたとき」ブロックを出す
2.拡張機能から「ペン」を選ぶ
3.ペンカテゴリにある「全部消す」ブロックを出す
4.ステージの中心に、スプライトを配置します。
動きカテゴリから下の2つのブロックを出しましょう。
- 「x座標を(0)、y座標を(0)にする」ブロック
- 「(0)度に向ける」ブロック
5.目盛を描く
制御カテゴリ「(12)回繰り返す」ブロックを出し、中に以下の処理を追加しましょう。
- 動きカテゴリ「(120)歩動かす」ブロック
- ペンカテゴリ「スタンプ」ブロック
- 動きカテゴリ「(-120)歩動かす」ブロック
- 動きカテゴリ「(30)度回す」ブロック
何歩動かすかは、お好みで調整してください。
「スタンプ」ブロックは、スプライトの見た目をハンコみたいにはりつける命令です。
「アナとエルサとコードを書く」というアワーオブコードのアクティビティでは、プログラムを使って美しいもようを描く方法を学べます。プログラムでもようを描くのが楽しかった方は、ぜひこちらもチェックしてみてください。
作品の完成
アナログ時計が完成しました!
このままでは飾り気のない時計なので、好きなようにアレンジしてみましょう。
例えば、
- 針のデザインを変える
- 決まった時間に音を鳴らす
- 時間帯で背景が変わる
など、自分だけのオリジナル時計を作ってみてくださいね!
まとめ
この記事では、Scratchを使った「アナログ時計」の作り方を紹介しました。自分だけのオリジナル時計を作ることができたでしょうか?
また、算数でつまづきがちな「時計算」の基本的な考え方も学ぶことができましたね。
- 秒針:60秒で360度進むので、1秒で6度(360度÷60秒)進む。
- 長針:60分で360度進むので、1分で6度(360度÷60分)進む。
- 短針:12時間で360度進むので、1分で0.5度(360度÷(12時間×60分))進む。
当ブログでは「デジタル時計」の作り方も紹介しています。ぜひチャレンジしてみてくださいね!