如何制作一个塔防小游戏(三)

简介: 嗨!大家好,我是小蚂蚁。今天我们继续分享制作一个塔防小游戏的第三节,如何创建不同类型的敌人,以及如何利用表格来编辑数据以及创建敌人。

嗨!大家好,我是小蚂蚁。今天我们继续分享制作一个塔防小游戏的第三节,如何创建不同类型的敌人,以及如何利用表格来编辑数据以及创建敌人。


如何创建不同类型的敌人



现在,我们需要在游戏中创建三种类型的敌人。

普通敌人:伤害一般,速度一般,血量一般。

快速敌人:伤害低,速度快,血量少。

巨大敌人:伤害高,速度慢,血量多。

在确定了 3 个属性后,其实我们只需要调整属性的值,就可以区分出三种不同类型的敌人了。


接下来我们为每个敌人增加 3 个局部变量,也就是这 3 个属性。


640.png

640.png

640.png



接下来我们来看一下,这三个变量在敌人逻辑中的使用。


在敌人创建时,设置敌人的移动速度。

640.png


在敌人被攻击时,减少局部变量血量的值。

640.png


在敌人到达目的地时,根据自己的局部变量“伤害”的值,减少玩家的生命值

4696c24a90e4d3bdf23bbdc141a5a06d.png


最后,再为敌人设置不同的精灵图片,这样我们就创建了 3 种不同类型的敌人了。


dff2af71fc2db064a77071d349e6acca.gif


2c575352327844146004b4b3b450f62d.gif


d1aa04484d8f0237ed4321dcddfe96c9.gif


这里普通敌人和快速敌人用了相同的图片,快速敌人更小,旋转速度更快。


不同类型的敌人区别主要体现在两个层面,第一个是外表,即不同的图片,动画,声音等等。第二个是内在,即每种类型的敌人所对应的不同的属性。通过这两个层面的调整,就可以制作出各种各样的敌人了。


如何利用表格编辑敌人数据



在一个塔防游戏中,敌人通常都是一波一波的进攻的,干掉一波敌人后,接着又出现一波,直到消灭最后一波敌人,才能够获得胜利。


那么我们如何去设置一个关卡中的一波一波的敌人呢?每一波出现几个敌人?出现哪种类型的敌人?这里我们可以使用一个非常强大的数据形式——表格


b0677aed04859b584612b9ed5a5d8edc.png


如图,就是一个关卡中的敌人数据的表格了,这是一个 6 行 5 列的表格。

第一列表示的是当前的敌人的波数,也就是当前是第几波敌人。

第二列表示的是当前这波敌人要生成的数量

第三列表示的是当前这波敌人中每个敌人的血量

第四列表示的是当前这波敌人的类型。

第五列表示的是当前这波敌人中每个敌人之间生成的时间间隔

表格中的每一行代表的就是一波敌人的数据,假设我们当前读取了第一行(波)敌人数据。


42624c869323bfe941bbfcd3114e2523.png


在拿到这一行数据之后,其实我们就能够知道如下的信息:在这一波中一共要生成 3 个类型为1(普通)的敌人,每个敌人的血量为 4,每个敌人的生成时间间隔为 3 秒。


有了这些数据之后,我们就可以在游戏中创建这一波敌人了。

在这个数据表格中我设置了血量生成间隔这两个变量,主要是为了增加不同波数的敌人的差异性,例如在游戏中第 1 波敌人和第 4 波敌人都是相同类型的敌人,此时就可通过调整敌人的生成数量,血量或者生成间隔,来让这两波敌人产生差异性。

在游戏中其实不需要每一波敌人在形象和属性上都必须完全不同,我们可以通过增加一下属性,来增加差异性,这样即使是同一种类型的敌人,也能产生多种不同的效果和组合。


如何创建一波一波的敌人



在表格中拿到一行敌人的数据之后,接下来要做的其实就是按照数据把敌人一个一个的创建出来。


首先,我们需要创建 2 个全局变量。


749e64953177cd4864609f9e6496ab9d.png

当前敌人的波数:这个变量帮助我们记录当前是第几波敌人,我们利用它在表格中获取指定行的数据。


当前干掉的敌人数量:这个变量帮助我们记录当前这一波敌人被干掉的数量,我们需要它帮助我们判断当前的这一波敌人是不是都被干掉了,是否需要继续生成下一波敌人。


接下来,看一下根据表格数据生成一波敌人的积木逻辑。


233a2598556908c76c93fc5badad887b.png


创建敌人的函数,根据敌人类型克隆指定的敌人。

a8c08ae4c7f3eb5baea7f3aeaed097f1.png


敌人被克隆出来后的逻辑也做了一点儿修改,通过表格中的血量数据来设置敌人的血量

5e25f5a99cb564ce336e4d563bc15b02.png


这样我们就把一行(波)数据,变成了一波真实的敌人了。


如何判断一波敌人是否消灭完,以及游戏是否过关了呢?接着来看下面的积木逻辑。

86986d6d178db10419655a04cca4d356.png


如果被干掉的敌人的数量等于当前这波敌人的数量,就证明这波敌人都被干掉了。接下来又做了一个判断,如果当前敌人的波数等于敌人表格的总行数,就证明了所有的敌人都被干掉了,游戏过关,否则的话,就继续生成下一波敌人。

因为表格中的一行表示了一波敌人的数据,所以表格的总行数也就代表了这一关中敌人的总波数。

最后,我们再来看一下敌人的死亡处理。

c5d864e78db38ec61de9ffafbcadb6c9.png


好了这就是如何利用表格来编辑和生成敌人的数据了,这里只是一个简单的示例,重要的是要了解这种使用表格来设置游戏数据的方法,然后应用到自己的游戏中。你可以试着增加更多类型的敌人,为敌人增加更多种类的属性,设计一个更丰富的敌人数据表格,然后做一个更好玩的塔防游戏。


这一节的内容就到这里了,下一节中我们将继续分享如何实现炮塔的升级以及出售功能。


相关文章
|
10月前
|
Python
实现一个2048小游戏
要实现一个2048小游戏,你需要使用Python编程语言和图形用户界面(GUI)库。下面是一个使用Tkinter库来创建2048小游戏的基本步骤
446 3
|
2月前
泡泡龙游戏开发实战教程(1):泡泡龙游戏的布局
泡泡龙游戏开发实战教程(1):泡泡龙游戏的布局
55 0
|
2月前
在微信小游戏制作工具中制作一个下雨的效果
在微信小游戏制作工具中制作一个下雨的效果
40 0
|
存储 定位技术 开发工具
坦克大战小游戏的实现
坦克大战小游戏的实现
|
算法
2048小游戏(变态版哦)
2048小游戏(变态版哦)
207 0
|
小程序
如何制作一个塔防小游戏(三)
嗨!大家好,我是小蚂蚁。今天我们继续分享制作一个塔防小游戏的第三节,如何创建不同类型的敌人,以及如何利用表格来编辑数据以及创建敌人。
110 0
10分钟制作一个反弹球小游戏(视频版)
当然它们其实各有利弊,阅读文字效率更高,但是也要求你有更多的注意力和理解力。音视频传递信息效率慢,但是它们更复活人类学习的直觉习惯,通过听觉和视觉来进行模仿。 虽然我个人更喜欢文字,但是我仍然会继续录制视频教程,因为很多内容并不是只给我自己看的,是给很多人看的,而大多数人更倾向于观看视频。
94 0
|
开发者
从零开始制作一个俄罗斯方块游戏
小蚂蚁的游戏目前已经上线,主要面向的是有一定基础的同学。从零开始制作一个经典的俄罗斯方块游戏,理论结合实战,帮助你进一步提升做游戏的技能。
110 0
|
人工智能 移动开发 数据可视化
不会游戏编程还能制作游戏吗?(附无代码游戏制作软件推荐)
在这个时代,你不懂摄影,但是却可以用手机轻松地拍出好看的照片;你不懂图像处理,但是却可以一键让你的照片显示出各种各样的效果;你不懂画画,但是却可以通过语言描述,让 AI 帮助你画出你可能凭借自己永远都无法画出的作品......工具在不断的降低创作的门槛,让越来越多的人能够做一些原本只有少数人才能做到的事。
583 0
|
开发工具 Android开发 图形学
微信小游戏是个人尝试做游戏最好的选择
我自己现在正在做微信小游戏,而且也在教很多的学员做微信小游戏。你可能会觉得我这样说是有一定的动机的,但其实不然,如果我自己不相信这个平台的话,那其实我是没有必要自己做的,只需要忽悠让别人相信就可以了。但是现在我自己也正在致力于做这件事,这也证明了我对它的认可。不是有这么一句话吗?不要轻易相信一个人说了什么,而要看他做了什么
112 0