如何做一个塔防小游戏(一)

简介: 嗨!大家好,我是小蚂蚁。从今天起,计划用几篇文章分享一下如何使用微信小游戏制作工具做一个塔防小游戏。

嗨!大家好,我是小蚂蚁。从今天起,计划用几篇文章分享一下如何使用微信小游戏制作工具做一个塔防小游戏。


640.gif


如图,是一个塔防游戏的示例,在一个塔防游戏中大概包含这样的几个部分:


  • 各种类型的防守塔
  • 各种类型的敌人
  • 敌人按照指定的路径移动
  • 防守塔建设点
  • 敌人数据编辑


今天,我们主要了解一下如何实现一个防守塔的功能,以及如何让敌人按照指定的路径进行移动。


实现一个防守塔



实现一个防守塔非常的简单,因为小游戏制作工具已经为我们提供了现成的“行为”了。


选中作为炮塔的精灵,然后在属性区的下方点击“管理行为”按钮,在行为对话框中开启“炮塔”行为。这个行为已经为我们提供了制作一个防守塔所需的大部分的功能了。


640.png


开启行为后,可在属性区下方会看到与“炮塔”有关的几个属性,


640.png


启用:是否开启这个行为,默认开启。

炮塔半径范围:这个属性决定了炮塔的攻击距离,设置 300 表示当敌人与炮塔的距离小于等于 300 时,炮塔就会进行攻击。

是否旋转:炮塔是否会跟随敌人进行转动,开启后,炮塔会跟随着敌人的移动调整自己的朝向。

旋转速度:炮塔调整朝向时的速度。


积木区右侧的“行为”类别中,也会增加与炮塔有关的 6 个积木块。


640.png


这里,我们重点使用的是前两块以及最后一块积木块。第一块积木块儿的作用是设定敌人,炮塔要攻击谁,就把谁设置为目标敌人。第二块积木块用于在游戏时设置炮塔的攻击范围,例如炮塔升级后,攻击范围增加,就可以使用这块积木块来调整攻击范围。最后一块积木块是一个判断积木块,用于判断“当前是否有可以攻击的敌人”,用于控制炮塔的攻击,因为只有在有敌人可攻击的情况下,炮塔才会发射子弹,否则的话炮塔应该处于待机状态。


一个需要注意的地方


640.png


上方讲过,“炮塔”的属性中有一个“是否旋转”的属性,勾选后,炮塔会根据敌人当前的位置自动调整自己的朝向。但是这里有一个需要注意的地方,就是炮塔的旋转默认是以向右为正方向的,如图中的炮筒是向右的,这样在旋转时才能保证炮筒一直朝向敌人。默认的炮塔图片炮筒是向上的,所以,这里我增加了一个容器,将“炮塔”行为添加到容器上,然后调整容器中的“炮塔1图片”朝向右。


最后,我们再来看一下炮塔容器上的控制炮塔攻击的积木块儿。


640.png


重点关注标注的积木块,首先,我们设置了目标敌人,然后设置攻击范围。最后利用一个循环来处理炮塔发射子弹,这里我们用到了“是否锁定敌人”这个积木块,即只有当前有敌人可被攻击时,炮塔才会发射子弹。


再来看一下炮塔子弹的积木逻辑。


7a4bf1f390f3efe5995e02b98e5069c9.png


重点是第二个积木块,因为炮塔的朝向是在不停变化的,所以我们使用“创建者的角度”这个积木块获取当前炮塔的朝向角度,然后以此来当作子弹移动方向的角度,这样能够确保子弹是沿着炮筒方向发射的。


最后,呈现出的就是这样的效果。


744ec85c9e71574cf9617366d4d8992d.gif


总结一下,利用工具提供的“炮塔”行为我们可以很方便的实现一个炮塔的功能。另外,对于一个炮塔来讲,后续会需要进行升级处理,例如升级后,增加攻击范围,加快攻击速度,增加攻击力等等。增加攻击范围可以通过“设置炮塔半径”的积木块实现,增加攻击速度可以通过调整克隆子弹的间隔来实现,增加攻击力就可以放在炮塔的子弹中进行处理了。这些等到我们后续讲到升级时再详细介绍。


为敌人设置路径点



在塔防游戏中,一般每一关中敌人行进的路径都是不同的,敌人的行进路径需要根据当前的场景图片进行设置。其实,整个敌人的行进路径是由一个一个的路径点组成的。


82305b8008444fcbac99d3b351ef2fae.png


如图,从上方的起始点到最后的结束点,这之间是一段弯弯曲曲的路线,其实这整段路径可以用中间的这些蓝色的点来表示,敌人只需要从其中的一个点移动到下一个点即可。


想要让敌人按照路径点移动也非常的简单,因为小游戏制作工具同样也为我们提供了现成的功能,这个功能在“移动行为”中。


选中要移动的敌人,然后为敌人开启“移动行为”。


9276390b701ea3ad0e08a7a1aa8b9e44.png


开启移动行为后会增加如下的属性。


59adb78c3d693094be5e877b403dac25.png


与“移动行为”有关的参数这里就解释了,可以完全按照字面意思理解,也可以参考官方文章中的详细解释。

移动行为文档: https://gamemaker.weixin.qq.com/doc/minigame/behaviors/moveto.html

与“移动行为”有关的积木块儿共有 10 个,这里我们只关注与“航路点”有关的两块积木,一个是设置指定的位置,一个是将指定的精灵添加到路径点(其实添加的是这个精灵的位置)。


c0cf91cd324c4de44cb53c09f72437e0.png


航路点”指的就是我们上图中路径中的那些蓝色的点,我们只需要将路径中所有的“”,使用“添加到航路点”积木块进行添加,最后启用一下移动行为,敌人就会按照指定的路径进行移动了。


为了方便调整路径点,我们可以直接在场景中增加用于标识路径点的精灵,这样就可以在编辑区通过拖拽调整路径点了。


b776b9f8277f609562fdfd4e853b205f.png


最后,我们来看一下控制敌人移动的积木逻辑。


5bae8a5c484ccf3862ee8e6f14f23e10.png


添加完所有的路径点,然后启用移动行为即可。

这里有两种添加航路点的方式,直接使用坐标或者使用指定的精灵。据测试使用精灵作为航路点,在电脑端测试正常,但是在手机上预览时,路径有问题,算是一个工具的bug。所以,目前建议使用第一种方式。

最后,看一下敌人的移动轨迹。


730b904406cc2f022fcbbc943d7b14bb.gif


今天的内容就到这里了,利用小游戏制作工具为我们提供的行为,我们可以快速的实现一个炮塔,以及让敌人按照指定的路径移动。下一篇将介绍如何设置炮塔建设点,以及如何创建不同类型的炮塔。


相关文章
|
28天前
|
前端开发 JavaScript
前端复刻经典小游戏之飞机大战(一)
前端复刻经典小游戏之飞机大战(一)
23 1
|
28天前
|
前端开发 JavaScript 安全
前端复刻经典小游戏之飞机大战(三)
前端复刻经典小游戏之飞机大战(三)
16 0
|
28天前
|
前端开发 JavaScript 测试技术
前端复刻经典小游戏之飞机大战(二)
前端复刻经典小游戏之飞机大战(二)
38 0
|
2月前
|
算法
连连看游戏系列教程开篇
连连看游戏系列教程开篇
42 0
|
小程序 索引
如何做一个塔防小游戏(四)
嗨!大家好,我是小蚂蚁。今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能。 在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,攻击速度提升,攻击范围增大,炮塔变成红色的。
84 0
|
小程序 容器
如何做一个塔防小游戏(一)
实现一个防守塔非常的简单,因为小游戏制作工具已经为我们提供了现成的“行为”了。 选中作为炮塔的精灵,然后在属性区的下方点击“管理行为”按钮,在行为对话框中开启“炮塔”行为。这个行为已经为我们提供了制作一个防守塔所需的大部分的功能了。
132 0
|
小程序 索引
如何做一个塔防小游戏(二)
为了方便设置炮塔的位置,可以使用一个精灵图片作为标识,图中我使用了黄色的五角星作为炮塔位置的标识,可以在场景区中直接拖拽五角星对炮塔的位置进行设置。然后在游戏启动后我们将使用炮塔创建按钮来替换这些五角星的位置。
81 0
|
算法 索引 容器
如何做一个俄罗斯方块游戏(二)
嗨!大家好,我是小蚂蚁。今天我们继续学习如何做一个俄罗斯方块游戏。整个系列教程计划按照这个流程图开展,这也是我制作整个游戏的过程,今天我们就来看一下“随机生成形状”这个模块。想要实现随机的生成形状,首先必须要知道在俄罗斯方块中一共有多少种形状(也就是我们上一节中留下的第二个问题)。
134 0
|
定位技术 开发者
如何做一个俄罗斯方块游戏(一)
从今天开始,我将开启一个新的游戏,并且顺带着会写一个新的系列教程,这个游戏就是人人都知道的——俄罗斯方块。 我一直都在做消除类型的游戏,在所有消除类型的游戏里,俄罗斯方块可以称得上是“鼻祖”了,所以,不论怎样这个系列里都不能少的了它。
115 0
|
算法 小程序
如何做一个泡泡龙游戏(六)
嗨!大家好,我是小蚂蚁。 上一节中,我们学习了泡泡龙游戏中的查找算法,这个算法可以帮助我们找到所有相邻的相同颜色的泡泡,在查找完泡泡之后,再通过判断满足条件的泡泡的数量是否大于等于 3,来决定是否应该进行消除。
88 0