- 少儿计算思维养成记:六个孩子的编程学习笔记
- 包若宁等编著
- 1088字
- 2025-02-23 14:12:08
二、动手练:一个走动的钟表
(一)实验目的
做一个走动的钟表,秒针每秒转动一格,分针每分转动一格,时针每小时转动一格。
(二)基本思路
1)钟表的表盘是固定不变的,可以设置成背景。
2)秒针、分针、时针要走动,我们把它们定义成3个角色,通过转换方向来实现走动。
3)秒针、分针执行“重复”操作,每秒循环一次,更改角度。因为秒针每60秒走一圈,而一圈是360°,所以秒针的方向是“当前是第几秒÷60×360°”;分钟每60分转动一圈,因此分针的方向是“当前是第几分÷60×360°”。
4)时针执行“重复”操作,每分钟循环一次,更改角度。因为时针12小时走一圈,所以时针的方向是“当前是第几小时÷12×360°”。不过这样时针每小时才更新一次,走得“咯噔咯噔”的。为了更顺畅一些,我们每分钟更新一下时针的角度,把方向变成“当前是第几小时÷12×360°+当前是第几分÷60×30°”。
5)当前的时间可以用“侦测”里的“当前时间的秒”等来获得。
(三)编程步骤
(1)背景绘制
Scratch系统没有钟表表盘,我们只好自己绘制了。我们把鼠标放在背景设置区右下角的上,然后在弹出的菜单条里选择画笔
,即可开始绘制背景。
我们画一个圆圈表示表盘,然后在圆圈上标上1,2,3,…,12各个数。注意,背景绘制区中有一个带十字的圈圈,表示绘制区的中心;我们一定得保证圆圈的圆心在这个中心,如图2-7所示。

图2-7 “走动的钟表”实验里在背景区绘制表盘
(2)角色绘制
Scratch系统也没有现成的秒针、分针和时针,需要自己绘制。我们把鼠标放在角色设置区右下角的上,然后在弹出的菜单条里选择画笔
,即可开始绘制角色了。
我们画一条红色细横线表示秒针。注意:一定要以角色绘制区里的十字线为起点开始画;这个点是角色的“中心点”,角色旋转时是围绕这个中心点旋转的。分针和时针的绘制方法与此类似。
卜老师提示我们,Scratch2.0版本中可以指定角色的“中心点”,而在Scratch 3.0中,以十字线作为所绘制角色的中心点。
(3)角色的脚本
现在我们有三个角色,下面得为每个角色单独写一个脚本(见图2-8)。

图2-8 秒针的脚本(左)和分针的脚本(右)
在这里,我们让秒针角色执行“移到最前面”,让时针角色执行“移到最后面”,这样秒针就不会被时针挡住啦!这里我们使用了“重复执行”积木,后面我们会详细介绍。
(四)实验结果
现在我们点击一下绿旗,就能看到一个精美的钟表啦!图2-9是我的程序画出的时钟,秒针每秒走一格,很好看吧!

图2-9 时针的脚本(左)和实验结果(右)
(五)遇到的bug及改正过程
bug:一开始我们画秒针时,没从十字线中心开始画,结果秒针旋转时,是“偏心旋转”,很不好看。
改正:后来改成从十字线中心开始画,就好了。
(六)思考与延伸
倒着走的时钟怎么写程序呢?