Scratch3两种检测按键方法的区别

对键盘按键动作进行即时检测是游戏开发中最常用功能之一。

在Scratch3中实现该功能有两种常用方法,一种是直接使用“事件”积木块中的积木,我们本文中称为A方法:

按下空格执行后续程序

另一种是:

按下空格执行夹子内程序

该方法还有一个表达形式是:

按下空格执行夹子内程序

我们本文称为B方法。

那么这两种方法有什么区别呢?

表面上看差不多,其实区别非常大。我们可以做一个小实验:

二者只能执行后触发的程序线程

在A方法下,如果我们同时按下↑键和→键,角色只能执行一个线程,要么向上移动,要么向右移动,并不能实现我们想要的右上方移动效果。

而B方法则可以实现角色右上方移动效果:

二者同时执行,但是依然是间隔极短的轮流执行

严格来说,B方法并不是真正的实现了这个效果,而是在B方法中,角色是两个命令轮流执行,上移1像素后,再右移1像素,然后循环执行,看上去就像是右上方移动了。

所以,在我们实际项目中,根据要求不同,我们会选择不同的按键侦测方式,如果确定只是上下左右移动,那么选用A方法;如果角色不限制方向,则B方法使用情况居多。

另外,B方法开启多个线程侦测按键在复杂项目中不推荐使用,我们通常会将B方法优化成如下方法:

顺序轮流执行,但是速度很快,感官上是同步执行

这样我们就只需要开启一条线程,提高了程序的可读性和执行效率。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

TIOBE 2023年3月编程语言排行榜,少儿编程Scratch大幅增长

2023-3-13 23:56:28

综合资讯

Scratch3为什么要养成删除隐藏克隆体的习惯

2023-3-16 9:04:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索