嗨!大家好,我是小蚂蚁。从今天起,计划用几篇文章分享一下如何使用微信小游戏制作工具做一个塔防小游戏。
如图,是一个塔防游戏的示例,在一个塔防游戏中大概包含这样的几个部分:
- 各种类型的防守塔
- 各种类型的敌人
- 敌人按照指定的路径移动
- 防守塔建设点
- 敌人数据编辑
今天,我们主要了解一下如何实现一个防守塔的功能,以及如何让敌人按照指定的路径进行移动。
实现一个防守塔
实现一个防守塔非常的简单,因为小游戏制作工具已经为我们提供了现成的“行为”了。
选中作为炮塔的精灵,然后在属性区的下方点击“管理行为”按钮,在行为对话框中开启“炮塔”行为。这个行为已经为我们提供了制作一个防守塔所需的大部分的功能了。
开启行为后,可在属性区下方会看到与“炮塔”有关的几个属性,
启用:是否开启这个行为,默认开启。
炮塔半径范围:这个属性决定了炮塔的攻击距离,设置 300 表示当敌人与炮塔的距离小于等于 300 时,炮塔就会进行攻击。
是否旋转:炮塔是否会跟随敌人进行转动,开启后,炮塔会跟随着敌人的移动调整自己的朝向。
旋转速度:炮塔调整朝向时的速度。
在积木区右侧的“行为”类别中,也会增加与炮塔有关的 6 个积木块。
这里,我们重点使用的是前两块以及最后一块积木块。第一块积木块儿的作用是设定敌人,炮塔要攻击谁,就把谁设置为目标敌人。第二块积木块用于在游戏时设置炮塔的攻击范围,例如炮塔升级后,攻击范围增加,就可以使用这块积木块来调整攻击范围。最后一块积木块是一个判断积木块,用于判断“当前是否有可以攻击的敌人”,用于控制炮塔的攻击,因为只有在有敌人可攻击的情况下,炮塔才会发射子弹,否则的话炮塔应该处于待机状态。
一个需要注意的地方
上方讲过,“炮塔”的属性中有一个“是否旋转”的属性,勾选后,炮塔会根据敌人当前的位置自动调整自己的朝向。但是这里有一个需要注意的地方,就是炮塔的旋转默认是以向右为正方向的,如图中的炮筒是向右的,这样在旋转时才能保证炮筒一直朝向敌人。默认的炮塔图片炮筒是向上的,所以,这里我增加了一个容器,将“炮塔”行为添加到容器上,然后调整容器中的“炮塔1图片”朝向右。
最后,我们再来看一下炮塔容器上的控制炮塔攻击的积木块儿。
重点关注标注的积木块,首先,我们设置了目标敌人,然后设置攻击范围。最后利用一个循环来处理炮塔发射子弹,这里我们用到了“是否锁定敌人”这个积木块,即只有当前有敌人可被攻击时,炮塔才会发射子弹。
再来看一下炮塔子弹的积木逻辑。
重点是第二个积木块,因为炮塔的朝向是在不停变化的,所以我们使用“创建者的角度”这个积木块获取当前炮塔的朝向角度,然后以此来当作子弹移动方向的角度,这样能够确保子弹是沿着炮筒方向发射的。
最后,呈现出的就是这样的效果。
总结一下,利用工具提供的“炮塔”行为我们可以很方便的实现一个炮塔的功能。另外,对于一个炮塔来讲,后续会需要进行升级处理,例如升级后,增加攻击范围,加快攻击速度,增加攻击力等等。增加攻击范围可以通过“设置炮塔半径”的积木块实现,增加攻击速度可以通过调整克隆子弹的间隔来实现,增加攻击力就可以放在炮塔的子弹中进行处理了。这些等到我们后续讲到升级时再详细介绍。
为敌人设置路径点
在塔防游戏中,一般每一关中敌人行进的路径都是不同的,敌人的行进路径需要根据当前的场景图片进行设置。其实,整个敌人的行进路径是由一个一个的路径点组成的。
如图,从上方的起始点到最后的结束点,这之间是一段弯弯曲曲的路线,其实这整段路径可以用中间的这些蓝色的点来表示,敌人只需要从其中的一个点移动到下一个点即可。
想要让敌人按照路径点移动也非常的简单,因为小游戏制作工具同样也为我们提供了现成的功能,这个功能在“移动行为”中。
选中要移动的敌人,然后为敌人开启“移动行为”。
开启移动行为后会增加如下的属性。
与“移动行为”有关的参数这里就解释了,可以完全按照字面意思理解,也可以参考官方文章中的详细解释。
移动行为文档: https://gamemaker.weixin.qq.com/doc/minigame/behaviors/moveto.html
与“移动行为”有关的积木块儿共有 10 个,这里我们只关注与“航路点”有关的两块积木,一个是设置指定的位置,一个是将指定的精灵添加到路径点(其实添加的是这个精灵的位置)。
“航路点”指的就是我们上图中路径中的那些蓝色的点,我们只需要将路径中所有的“点”,使用“添加到航路点”积木块进行添加,最后启用一下移动行为,敌人就会按照指定的路径进行移动了。
为了方便调整路径点,我们可以直接在场景中增加用于标识路径点的精灵,这样就可以在编辑区通过拖拽调整路径点了。
最后,我们来看一下控制敌人移动的积木逻辑。
添加完所有的路径点,然后启用移动行为即可。
这里有两种添加航路点的方式,直接使用坐标或者使用指定的精灵。据测试使用精灵作为航路点,在电脑端测试正常,但是在手机上预览时,路径有问题,算是一个工具的bug。所以,目前建议使用第一种方式。
最后,看一下敌人的移动轨迹。
今天的内容就到这里了,利用小游戏制作工具为我们提供的行为,我们可以快速的实现一个炮塔,以及让敌人按照指定的路径移动。下一篇将介绍如何设置炮塔建设点,以及如何创建不同类型的炮塔。