上QQ阅读APP看书,第一时间看更新
2.6 计时
我们继续解释心形角色的代码,第6条语句在等待了上面的一个随机时间之后,把心形切换成红色造型,然后就进入到第7、8、9语句的计时部分了。
语句7属于“侦测”类别,里面专门有如下图所示的两个指令。可以简单地这么理解:计算机有自己的一个秒表,“计时器归零”这条指令一执行,秒表就归零并开始计时。在任意时刻,你都可以用鼠标单击左侧指令区域里的“计时器”这个变量,看到它一直在默默记录的时间。
在我们的例子里,语句7在心形变成红色之后开始计时,语句8一直等待,直到鼠标按下时读出“计时器”里的时间,这就是反应速度时间。
NOTICE注意:计时器时间只能使用一次
特别要注意的是,读取了“计时器”的时间后,指令区域里的“计时器”变量还一直在工作,甚至程序执行结束后它也仍然在工作,因为Scratch里根本就没有提供“停止计时”这样的指令。
在我们这个例子中,在我们希望使用反应时间时不能第二次去读取计时器,因为它里面的值早就不是当初的时间了,而是从心形变红直到现在这一刻的新时间了。
所以,我们必须如下图所示,用一个变量来记录反应时间。
回过头来我们再说说语句8,它是由下面两个指令嵌套起来的。
有没有注意到,这里的等待和之前的等待语句是不一样的,如下图所示。
前面我们说过,两侧弧形的矩形表示数值类型,而两侧尖角的矩形,表示真假值类型。上图的“按下鼠标?”就是这样一个或者“真”或者“假”的值。
HOMEWORK作业:
去运算类中看看里面有哪些指令是返回数值型的,哪些指令块是真假型的,并且看看你是不是能理解为什么。
另外有没有发现,Scratch里的数值型和字符串型是不做区分的?
好了,现在你应该能够完成这个初级版的反应测试小游戏了吧?那么快快把这个游戏保存和分享起来,然后和小朋友们比试比试,到底谁的反应速度更快吧。