想实现一个人物单击慢跑双击加速的效果,判断按键是否被双击,需要依赖Scratch中的计时器,按键后开启计时器,根据第二次按键的间隔时间,来判定是进入奔跑状态,还是进入常规慢速的状态。这个案例中将这个间隔设置为了0.2秒,如果按键并松开,在0.2秒内重复按键,角色会进入奔跑状态。
该计时器同时也作用于人物的慢跑,如果慢跑的时间超过了0.2秒,即便松开后快速按键,也只会进入慢跑状态了。
状态0 | 状态1 | 状态2 | |
---|---|---|---|
按下向右 | 状态变为1 | 慢速前进 | 快速前进 |
松开向右 | 为确保初始状态为0,状态不为1时不改变状态值 | 判断按键的时间,如果按键时间少于0.2秒,进入奔跑待机状态2,并清零计时器,如清零后0.2秒内未按键,状态会被变更为初始状态0,如果按键时间超过0.2秒,则视为用户并无意执行奔跑动作,直接将状态置0。 | 状态为2时的状态取消完全依赖于计时器,所以这里有个bug,连续按三次向右键也会进入奔跑状态 |