6. 精灵爱运动

6.1. 教程介绍

之前的课程中,我们学会了创建精灵,用按键控制精灵移动,知道了判断,随机数这些概念,以及如何去设计完整的游戏规则。

../../../_images/course6.1.png

在小猫抓鱼的游戏中,小猫是我们的玩家,是可以用按键来控制移动的。

而作为食物类型的小鱼精灵,在我们的游戏中没有自己做运动。但是在大多数的游戏中,除了玩家,别的角色也是有运动的。

怎么判断一个物体是在运动呢😕?

我们一般会用速度大小以及运动方向来描述一个物体的运动状态。

速度的大小也就是运动的快慢

如果速度V=0,那么我们认为这个物体是静止的。

../../../_images/course6.2.gif

同样的如果速度不等于0, 我们认为这个物体是运动的,并且速度值越大,运动越快。

../../../_images/course6.3.gif

运动是有方向的

我们会用前后左右或者别的表示方位的词来形容方向。

../../../_images/course6.4.gif

在Arcade中,我们的方向有上(VY)下(VY)左(VX)右(VX),其中上下是Y轴方向的速度, 左右是X轴方向的速度。👇

../../../_images/course6.5.png

接下来我们通过几个小项目来感受一下精灵的运动感吧!

6.2. 项目一:运动会

🚩学校举办了一场运动会,在百米短跑的比赛中,每一组有3名运动员,我们一起看看3名运动员的表现吧。

../../../_images/course6.6.png
  1. 创建3名运动员,并且让运动员们各自就位。👇

    ../../../_images/course6.7.png

2.运动员跑到终点就可以停下来了,我们设置运动员停留在屏幕中,这样在跑道终点(屏幕最右侧)的时候,运动员就能停下来。👇

../../../_images/course6.8.png
../../../_images/course6.9.png

一号运动员就位

运动员1号的特点呢,就是跑起来速度变化不大,基本就是匀速前进的。

我们用精灵工具箱-》物理模块-〉设置精灵速度积木块来设置1号运动员的速度。

因为运动员需要在自己的跑道上跑,我们比赛是从左边跑到右边,是横向运动,所以Y的速度Vy设为0, X的速度Vx我们设为20看一下效果。👇

../../../_images/course6.11.png

我们看到运动员1号匀速的从起点跑到终点。👇

../../../_images/course6.12.gif
../../../_images/course6.13.png

2号运动员就位

运动员2号的特点呢,就是一开始速度比较慢,但是他加速特别快,就像一个小火箭一样,越跑越快。

这里呢,要给大家介绍一下加速度的概念,加速度描述的是速度改变的快慢。

生活中我们最常见的加速度就是重力加速度,我们知道在高处是不能往下扔东西的,因为一旦有东西从高处掉落,它的速度会越来越快,如果砸到人的话,后果非常严重。

这里呢,我们给运动员2号设置一个加速度。

我们用精灵工具箱-》物理模块-〉设置精灵的值(位置 速度 加速度)积木块。👇

../../../_images/course6.14.png

同样的这个积木块还可以设置精灵的速度值。👇

../../../_images/course6.15.png

之前我们用“设置精灵速度”积木块来设置速度,两者的区别就是“设置精灵值”积木块一次只能设置一个值,而“设置精灵速度”积木块可以同时设置X Y的速度。👇

../../../_images/course6.16.png

现在我们看到1号运动员一开始速度快,2号相对落后,但是2号慢慢加速之后超过了1号,最终先到达终点。👇

../../../_images/course6.17.gif

但是如果修改1号速度值或者2号的加速度值,我们发现2号并不是一定就会胜利。

比赛路程,两个选手的速度,2号选手的加速度都会影响比赛的结果。

那加速度和速度的区别是什么呢?

1)加速度描述的是速度改变的快慢,速度描述的是位置改变的快慢。

2)加速度是速度对时间的变化率,速度是位置对时间的变化率。

../../../_images/course6.18.png ../../../_images/course6.19.png

也就是说,速度越快,一定时间内变化的位置更长;加速度越快,一定时间内速度变化的越快。

../../../_images/course6.20.png

三号运动员就位 刚才我们的1号运动员和2号运动员的特点其实都是稳定,1号呢速度很稳定, 2号呢是加速度很稳定。但是我们的3号选手就有点特别了,他跑的时候会加速,但他的加速是一开始慢慢加,到了后面会冲刺,速度变化比之前更快。

怎么让速度变化更快呢?

我们可以改变加速度的大小,加速度越大,速度变化越快。

我们用精灵工具箱-》物理模块-〉改变精灵的值(位置 速度 加速度)积木块。👇

../../../_images/course6.21.png

因为这个加速度的变化是不断增加的,所以我们可以加上一个循环,每隔1S的时间,加速度增加5。

使用游戏工具箱中的“当游戏每隔多长时间更新”积木块:👇

../../../_images/course6.22.png

现在我们可以看一下3个运动员的比赛发挥:

1号一开始领先,2号随后,3号是最慢的,但是经过一段时间,2 3 号慢慢赶上并且超越了1号,最终是3号赢得了比赛。👇

../../../_images/course6.23.gif

这个游戏呢也告诉了我们一个道理,一开始的落后并不要紧,抓紧赶上,还是有机会胜利哦!

运动会结束了,不同运动类型的几个积木块我们也介绍了,运动中还有一个跟随的技能,这个我们在小猫捉鱼这节课里也介绍过了。

接下来我们要介绍一个新的技能,就是弹射物。

我们在游戏中经常会看到一些场景,比如发射子弹进行攻击,打怪时掉落一些技能或者装备,这些呢都可以用弹射物来实现。弹射物字面上的意思就是一样东西被弹射了出去。

下面我们通过下雨天这个项目来了解一下弹射物。

6.3. 项目二:下雨天

🚩模拟下雨天的场景,云朵从屏幕左边慢慢移动到屏幕右侧,移动过程中不停的有雨滴从云朵上滴落下来。

我们把项目分解成下面的一些步骤:

  1. 首先我们要创建一个云朵,并且放在屏幕的左侧。👇

    ../../../_images/course6.25.png
  1. 让云朵从左往右慢慢移动。👇

    ../../../_images/course6.26.png
  2. 先让一滴雨滴从云朵上滴落。

雨滴可以当作是从云朵上弹射出去的弹射物,我们的弹射物也是精灵,是弹射物类型的精灵。

选择 精灵工具箱-》弹射物模块-〉将精灵设为弹射物从另一个精灵上以一定速度弹射出去积木块。

../../../_images/course6.27.png

1) 这里弹射物精灵我们重命名为雨滴,设置雨滴的形象。

2) 雨滴是从云朵上弹射出去的,所以另一个精灵选择云朵。

3) 雨滴是垂直向下滴落,vx=0, vy我们设为10。

完整设置如下。👇

../../../_images/course6.28.png

现在我们可以看到雨滴从云朵上弹射出去了。👇

../../../_images/course6.29.gif

接下来让很多雨滴从云朵上滴落。

游戏每隔一段时间更新积木块,可以实现我们的想法,这样雨滴就是不断的从云朵上滴落了。👇

../../../_images/course6.30.png

模拟器效果👇

../../../_images/course6.31.gif

但是现在的效果看起来并不逼真。有两个地方效果不好:

1) 雨滴一直都从云朵的一个位置滴落下来,云朵比较大,实际的雨滴应该是从云朵的任意一个位置滴落的。

2) 现在看到的雨滴是穿过了白云滴落下来,实际上我们看到的雨滴应该是从白云的最下方滴落的,白云内部我们看不到。

一起来完善一下吧。

首先是滴落的左右位置,默认是从云朵中间滴落的,我们想要的效果是从云朵内部随机位置滴落,那么就需要设置雨滴的滴落位置,即X的数值。

选择精灵-》 物理-〉改变mySprite的X以积木块。

../../../_images/course6.32.png

一开始的雨滴只能从云朵中心滴落,雨滴X的位置就是云朵的X位置,即云朵的中心位置。现在雨滴可以在云朵的边际内自由滴落。我们来看看雨滴可以向左和向右各走多少步吧。云朵宽度是16,雨滴在云朵中间,那么就可以向左走八步,向右走八步。

把云朵的中心设为0的话,云朵的边缘X坐标是-8~8。👇

../../../_images/course6.33.png

为了效果好一点,除去最边缘的情况,我们把雨滴滴落的X范围设为:弹射时的雨滴X-7至X+7。用这个范围的值来改变雨滴的X值,并且用随机数来达到雨滴随机滴落的效果。👇

../../../_images/course6.34.png

接下来是雨滴滴落的初始高度,和刚才一样,雨滴的Y=云朵的Y值,也就是云朵中心的Y坐标,想要雨滴从底部滴落的话,我们需要把雨滴的Y坐标加上云朵中心离底部的距离(不同大小的云朵不一样,需要根据自己的云朵大小修改)。👇

../../../_images/course6.35.png

现在看一下,这个小雨天的效果是不是更逼真了?

../../../_images/course6.36.gif

6.4. 总结

这节课我们介绍了精灵的运动,学会去设置以及改变精灵的位置,速度和加速度,并且了解了弹射物精灵的创建和用法。

希望接下来的游戏设计中,大家可以更好的去运用精灵的运动,让游戏更加出彩!

6.5. 问答考验

速度和加速度的区别是什么?

解析: 1)加速度描述的是速度改变的快慢,速度描述的是位置改变的快慢。 2)加速度是速度对时间的变化率,速度是位置对时间的 变化率。

加速度大,速度值一定就大吗?

解析:不一定,加速度大只能表示速度变化的快,不能说明速度的值就更大。

改变速度大小10,和设置加速度值为10,是不是一样的?

解析:不一样,速度和加速度都是和时间相关的,加速度是速度对时间的变化率,在不同的时间内改变同样的速度值,加速度大小也是不同的。

弹射物精灵的类型是什么?

解析:第二个,弹射物类型。

——————————————END——————————————————————

THANKS!

../../../_images/course6.37.gif