在游戏中实现人物的运动效果,不一定是去调整人物的坐标,利用背景的左右或上下移动,同样可以衬托出人物的运动与运动的速度。下面这一个简单的实例,展示了一个人物加减速奔跑的效果。
因为积木堆积在一起不好辨认,所以去掉了人物左右平移等与主题无关的效果,仅仅展示了人物的加减速,这个实例仅用到了3个角色,前2个作为背景图片,循环利用形成一条无限长的马路。奔跑的人物则负责检测加速键(方向键向上箭头)是否长时间被按下,根据按键的时长逐渐调整背景图片的移速,以实现逐渐加速的视觉效果。
2张图循环制作背景的知识点,在本博客《scratch两张图实现一个循环的背景》一文中有详细的解释,这里仅展示实现的代码,不再展开。
人物部分设置了两个变量,“speedUp”变量用于判断角色的当前状态,为“0”时逐渐减速,为“1”时则逐渐加速,而速度的快慢利用了第二个变量“speedLevel”,这里使用了scratch中的计时器功能,当按加速键时长超过1秒时,速度上调一档,计时器归零进入下一轮计时。“speedLevel”变量会直接作用于背景的移动速度,速度等级越高,背景单次移动的像素越大,视觉上感觉移动速度自然也就更快了。
减速部分使用了一个新的变量“brake”,“brake”的初始值为1,跟加速的时长一样,松开按键后按每秒一次的速度缓慢减速,当按下减速键(方向键向下箭头)时,“brake”会被强制修改为0.2,此时速度会以每0.2秒一次的频率快速下降,从而实现人物刹车的效果。