大家好,我是苏小糖,今天来研究一下scratch中对于按键的处理。很多程序中都会加入按键的检测,来控制角色作出各种动作。比如说角色的移动,飞机发射子弹,或者说打字母游戏,都需要加入对按键状态的判断。scratch中,事件代码下有当按下某某键,侦测代码下有按下某某键?这两种的使用区别,现在来探究一下。
1.使用两个角色做对比测试
添加篮球角色,使用事件代码,上下左右四个方向键分别在对应方向上坐标改变10。
添加苹果角色,使用侦测代码和如果那么判断结构,同样上下左右四个方向键分别在对应方向上坐标改变10。
两个角色的初始化位置均为x:0 y:0。按下对应按键以后,在对应方向上的坐标值变化也是一样的。很直观的可以判断篮球和苹果的运动状态会是同步的。但是,果真如此么?
2.进行点按和长按测试
首先进行点按测试,按下按键后,快速放开。可以发现,苹果移动的速度要快一些。篮球的速度要慢一些。就像每次苹果都多跑一点。
然后进行长按测试,按下按键后,等待1秒或2秒再放开。可以发现,苹果移动的速度还是比篮球快。而且篮球会有卡顿感,持续按住按键的时候篮球的运动依然是有停顿的。尤其按下按键第一次移动后停顿的时间要长一些。
3.对比测试结论
通过以上直观的对比测试,可以得出结论。
事件代码下的按键检测适合单次触发动作,不要求连续性的情况。而且两个不同按键的编程相互独立。比如,克隆方式发射子弹,最好是有时间间隔的,而不是几乎同时发射多发子弹。
侦测代码下的按键检测适合对连续性要求较高,长按允许连续多次执行的情况。比如,角色的移动,我们希望是连续的,没有停顿感的。
scratch3.0小问题系列:
scratch3.0小问题系列(二)克隆体与本体的继承关系 - 简书
scratch3.0小问题系列(三)克隆体个数探究 - 简书
scratch3.0小问题系列(四)克隆模块下面的积木归谁所有 - 简书
scratch3.0小问题系列(五)造型中心点设定 - 简书
scratch3.0小问题系列(六)画图因边界导致变形 - 简书
scratch3.0小问题系列(七)填充工具与月亮光晕效果 - 简书
我是苏小糖,平时玩玩scratch、microbit和arduino。后续会推出更多相关文章分享给大家。喜欢的话就关注我吧。
网友评论