6. 精灵爱运动¶
6.1. 教程介绍¶
之前的课程中,我们学会了创建精灵,用按键控制精灵移动,知道了判断,随机数这些概念,以及如何去设计完整的游戏规则。
在小猫抓鱼的游戏中,小猫是我们的玩家,是可以用按键来控制移动的。
而作为食物类型的小鱼精灵,在我们的游戏中没有自己做运动。但是在大多数的游戏中,除了玩家,别的角色也是有运动的。
怎么判断一个物体是在运动呢😕?
我们一般会用速度大小以及运动方向来描述一个物体的运动状态。
速度的大小也就是运动的快慢
如果速度V=0,那么我们认为这个物体是静止的。
同样的如果速度不等于0, 我们认为这个物体是运动的,并且速度值越大,运动越快。
我们会用前后左右或者别的表示方位的词来形容方向。
在Arcade中,我们的方向有上(VY)下(VY)左(VX)右(VX),其中上下是Y轴方向的速度, 左右是X轴方向的速度。👇
接下来我们通过几个小项目来感受一下精灵的运动感吧!
6.2. 项目一:运动会¶
2号运动员就位
运动员2号的特点呢,就是一开始速度比较慢,但是他加速特别快,就像一个小火箭一样,越跑越快。
这里呢,要给大家介绍一下加速度的概念,加速度描述的是速度改变的快慢。
生活中我们最常见的加速度就是重力加速度,我们知道在高处是不能往下扔东西的,因为一旦有东西从高处掉落,它的速度会越来越快,如果砸到人的话,后果非常严重。
这里呢,我们给运动员2号设置一个加速度。
我们用精灵工具箱-》物理模块-〉设置精灵的值(位置 速度 加速度)积木块。👇
同样的这个积木块还可以设置精灵的速度值。👇
之前我们用“设置精灵速度”积木块来设置速度,两者的区别就是“设置精灵值”积木块一次只能设置一个值,而“设置精灵速度”积木块可以同时设置X Y的速度。👇
现在我们看到1号运动员一开始速度快,2号相对落后,但是2号慢慢加速之后超过了1号,最终先到达终点。👇
但是如果修改1号速度值或者2号的加速度值,我们发现2号并不是一定就会胜利。
比赛路程,两个选手的速度,2号选手的加速度都会影响比赛的结果。
那加速度和速度的区别是什么呢?
1)加速度描述的是速度改变的快慢,速度描述的是位置改变的快慢。
2)加速度是速度对时间的变化率,速度是位置对时间的变化率。
也就是说,速度越快,一定时间内变化的位置更长;加速度越快,一定时间内速度变化的越快。
三号运动员就位 刚才我们的1号运动员和2号运动员的特点其实都是稳定,1号呢速度很稳定, 2号呢是加速度很稳定。但是我们的3号选手就有点特别了,他跑的时候会加速,但他的加速是一开始慢慢加,到了后面会冲刺,速度变化比之前更快。
怎么让速度变化更快呢?
我们可以改变加速度的大小,加速度越大,速度变化越快。
我们用精灵工具箱-》物理模块-〉改变精灵的值(位置 速度 加速度)积木块。👇
因为这个加速度的变化是不断增加的,所以我们可以加上一个循环,每隔1S的时间,加速度增加5。
使用游戏工具箱中的“当游戏每隔多长时间更新”积木块:👇
现在我们可以看一下3个运动员的比赛发挥:
1号一开始领先,2号随后,3号是最慢的,但是经过一段时间,2 3 号慢慢赶上并且超越了1号,最终是3号赢得了比赛。👇
这个游戏呢也告诉了我们一个道理,一开始的落后并不要紧,抓紧赶上,还是有机会胜利哦!
运动会结束了,不同运动类型的几个积木块我们也介绍了,运动中还有一个跟随的技能,这个我们在小猫捉鱼这节课里也介绍过了。
接下来我们要介绍一个新的技能,就是弹射物。
我们在游戏中经常会看到一些场景,比如发射子弹进行攻击,打怪时掉落一些技能或者装备,这些呢都可以用弹射物来实现。弹射物字面上的意思就是一样东西被弹射了出去。
下面我们通过下雨天这个项目来了解一下弹射物。
6.3. 项目二:下雨天¶
🚩模拟下雨天的场景,云朵从屏幕左边慢慢移动到屏幕右侧,移动过程中不停的有雨滴从云朵上滴落下来。
我们把项目分解成下面的一些步骤:
首先我们要创建一个云朵,并且放在屏幕的左侧。👇
让云朵从左往右慢慢移动。👇
先让一滴雨滴从云朵上滴落。
雨滴可以当作是从云朵上弹射出去的弹射物,我们的弹射物也是精灵,是弹射物类型的精灵。
选择 精灵工具箱-》弹射物模块-〉将精灵设为弹射物从另一个精灵上以一定速度弹射出去积木块。
1) 这里弹射物精灵我们重命名为雨滴,设置雨滴的形象。
2) 雨滴是从云朵上弹射出去的,所以另一个精灵选择云朵。
3) 雨滴是垂直向下滴落,vx=0, vy我们设为10。
完整设置如下。👇
现在我们可以看到雨滴从云朵上弹射出去了。👇
接下来让很多雨滴从云朵上滴落。
游戏每隔一段时间更新积木块,可以实现我们的想法,这样雨滴就是不断的从云朵上滴落了。👇
模拟器效果👇
但是现在的效果看起来并不逼真。有两个地方效果不好:
1) 雨滴一直都从云朵的一个位置滴落下来,云朵比较大,实际的雨滴应该是从云朵的任意一个位置滴落的。
2) 现在看到的雨滴是穿过了白云滴落下来,实际上我们看到的雨滴应该是从白云的最下方滴落的,白云内部我们看不到。
一起来完善一下吧。
首先是滴落的左右位置,默认是从云朵中间滴落的,我们想要的效果是从云朵内部随机位置滴落,那么就需要设置雨滴的滴落位置,即X的数值。
选择精灵-》 物理-〉改变mySprite的X以积木块。
一开始的雨滴只能从云朵中心滴落,雨滴X的位置就是云朵的X位置,即云朵的中心位置。现在雨滴可以在云朵的边际内自由滴落。我们来看看雨滴可以向左和向右各走多少步吧。云朵宽度是16,雨滴在云朵中间,那么就可以向左走八步,向右走八步。
把云朵的中心设为0的话,云朵的边缘X坐标是-8~8。👇
为了效果好一点,除去最边缘的情况,我们把雨滴滴落的X范围设为:弹射时的雨滴X-7至X+7。用这个范围的值来改变雨滴的X值,并且用随机数来达到雨滴随机滴落的效果。👇
接下来是雨滴滴落的初始高度,和刚才一样,雨滴的Y=云朵的Y值,也就是云朵中心的Y坐标,想要雨滴从底部滴落的话,我们需要把雨滴的Y坐标加上云朵中心离底部的距离(不同大小的云朵不一样,需要根据自己的云朵大小修改)。👇
现在看一下,这个小雨天的效果是不是更逼真了?
6.4. 总结¶
这节课我们介绍了精灵的运动,学会去设置以及改变精灵的位置,速度和加速度,并且了解了弹射物精灵的创建和用法。
希望接下来的游戏设计中,大家可以更好的去运用精灵的运动,让游戏更加出彩!