对键盘按键动作进行即时检测是游戏开发中最常用功能之一。
在Scratch3中实现该功能有两种常用方法,一种是直接使用“事件”积木块中的积木,我们本文中称为A方法:
另一种是:
该方法还有一个表达形式是:
我们本文称为B方法。
那么这两种方法有什么区别呢?
表面上看差不多,其实区别非常大。我们可以做一个小实验:
在A方法下,如果我们同时按下↑键和→键,角色只能执行一个线程,要么向上移动,要么向右移动,并不能实现我们想要的右上方移动效果。
而B方法则可以实现角色右上方移动效果:
严格来说,B方法并不是真正的实现了这个效果,而是在B方法中,角色是两个命令轮流执行,上移1像素后,再右移1像素,然后循环执行,看上去就像是右上方移动了。
所以,在我们实际项目中,根据要求不同,我们会选择不同的按键侦测方式,如果确定只是上下左右移动,那么选用A方法;如果角色不限制方向,则B方法使用情况居多。
另外,B方法开启多个线程侦测按键在复杂项目中不推荐使用,我们通常会将B方法优化成如下方法:
这样我们就只需要开启一条线程,提高了程序的可读性和执行效率。