友情提示:视频教程观看时请手动设置清晰度。
上节课,我们用Scratch中“目前的(小时/分/秒)”积木块,调用电脑的时间,制作了一个时钟,效果是下面这样的。今天我们再来学习使用其它几个积木块。
1. “自2000年以来的天数”
大家仔细观察上图例子中的秒针,发觉秒针不是平滑向前移动,而是1秒针跳动一个刻度。原因是,积木块“目前的(秒)”的精度就只有1秒,我们无法获取0.1秒,甚至更短暂的时间。有没有办法解决这个问题呢?
答案是有的:使用积木块“自2000年以来的天数”。接下来,我们先认识它。
学习计算机的小伙伴大多数都知道Unix时间戳的概念。Unix时间戳是从1970年1月1日(GMT的午夜)开始所经过的秒数。(GMT时间即格林尼治标准时间,由于世界各地的经度不同,被划分为24个时区,北京在东8区,比GMT早8个小时)在计算机世界里,Unit时间戳大有用途,和时间有关的运算都离不开它。它为跨平台跨系统的时间统一提供了基准。
我们今天要学的Scratch积木块没有那么“古董”,它使用的是自2000年1月1日GMT午夜开始所经过的天数,能提供比“当前的(秒)”更高的时间精度。我写这段话时的时间是:北京时间2018/07/04, 11:10:05,下图是该积木块对应的数值。咦,这是什么鬼?
这里是分割线,小朋友不要着急往下看,
试试看,怎样把它转化成当前时间?
好啦,揭晓答案啦,我们可以用这张图里的代码进行转换。
代码运行的结果是这样的:
小朋友们可能要问了,说好的北京时间呢?不是上午11点10分吗?怎么变成3点10分了?
其实啊,这个积木块也是以格林尼治时间为基准,它和我们北京时间相差8小时,所以将这个数值加上8,才是我们的北京时间。另外,通过转换之后,我们得到了毫秒级的时间。
小朋友们,计算机科学和我们的日常生活是息息相关的,我们从生活中处处可以找到编程的影子。
使用这个积木块,我们就可以让秒针像下图这样连续转动。具体怎么做留给小朋友们思考吧。如果有困难的话,可以给冉爸留言。
2. “计时器归零”和“计时器”
小朋友们在Scratch编程中应该经常使用到这两个积木块,很容易从字面上理解它们的意义。下面这个倒计时的例子,留给小朋友们自学吧。