背景
今年、子供が小学校に入学しましたが、時計に苦戦しています。ちょっと暇があったので、簡単なゲームをScratchで作ってみました。
Scratchで作ろうと思ったのは、子供が興味を持った時に説明する準備になるかな、と思ったからです。
作ったもの
ランダムにアナログで時間を表示して、ボタンで時間を回答する簡単なものです。
これです
ふわっとした解説
文字盤の描画
Scratchにはスプライトというオブジェクト(キャラクタ)が用意されています。スプライトはコスチュームを所有していて、見た目を変更することが出来ます。
さらに、クローンというスプライトのコピーを作る機能を利用します。
具体的には、スプライトに1 - 12に対応するコスチュームを作成します。idというプライベート変数を用意し、2に対応するコスチュームに変更→id=2、クローン作成、というようにして2-12をクローンとして作成し、自分自身は1のコスチュームにしておきます。
クローンされたら、idに応じて三角関数を用いて円周上に配置します。
短針、長針
timeというグローバス変数を参照して角度を設定します。
その他つまづいたところ
適宜waitしないと描画がうまくいかないことがありました。
スプライトを押したときの判定が透明部分にはないということに気が付かず、時間を浪費しました。
角度はradianでなくdegreeですね。
感想
すごく簡単に作れました。さすがはScratch。スプライト(オブジェクト)毎にコードを書くのが面白いと思いました。
下の画像のようなブロックの入れ子のようなものを作るとき、うまくはめ込まれないことが多く、手間取りました。
普段キーボードでごりごり書いていると、ブロックを探してきて配置する操作にもどかしさを感じますが、わかりやすさが重要なので仕方がないことだと思います。