如何制作一个塔防小游戏(四)
  nYrzcJimKxjR 2023年11月02日 32 0

嗨!大家好,我是小蚂蚁。今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能。


如何实现炮塔的升级

在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,射击速度提升,射击范围增大,炮塔变成红色的。

首先,我们为炮塔增加几个局部变量。

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

射击速度用于设置炮塔发射子弹的速度。

射击范围用于设置当前炮塔的射击范围。

是否已升级用于标识当前的炮塔是否已经进行过升级。

索引相当于当前的炮塔的 ID,我们为每个炮塔设置一个索引,也就是唯一的标识。

炮塔类型用于标识当前的炮塔类型。

对于炮塔的设置,我们增加这样的操作:当创建一个炮塔后,再次点击炮塔,会出现针对当前炮塔的选项,这里创建了一个选项面板,用于处理炮塔的升级出售

如何制作一个塔防小游戏(四)_游戏开发教程_02

接着来看一下如何设置选项面板,我们在炮塔上增加点击处理,增加如下的积木逻辑。

如何制作一个塔防小游戏(四)_塔防游戏开发_03

这里重点关注一下设置的 3 个全局变量,之前讲过,在小游戏制作工具中,我们需要使用全局变量来进行数据的传递,这里我们将当前选择的炮塔的一些信息记录到全局变量中,在后面的升级和出售处理中会用到。最后,我们将选项面板移动到当前手指点击的位置,然后通知选项面板,让它显示。

如何制作一个塔防小游戏(四)_小游戏_04

出售炮塔的类型用于在出售炮塔时,根据炮塔的不同类型设置不同的出售价格。

当前炮塔是否已升级用于在显示升级处理时,判断当前炮塔是否可以进行升级(当前我们设置每个炮塔只能进行一次升级)。

当前选中炮塔的索引用于记录当前操作的炮塔,在后续操作中可以借此知道操作的是哪一个炮塔。

接下来,看一下选项面板的显示逻辑。

如何制作一个塔防小游戏(四)_小游戏_05

因为我们限定了每个炮塔只能进行一次升级,所以这里根据之前记录的“当前炮塔是否已升级”全局变量的值来设置升级按钮是否可用。

升级按钮点击的积木逻辑。

如何制作一个塔防小游戏(四)_小游戏_06

逻辑很简单,如果玩家的金币数量大于升级需要的金币数量(100个),就进行升级处理,可以看到这里我们发送了两个通知,把不同炮塔的具体升级操作交由炮塔自己进行处理。

最后,看一下炮塔上具体的升级处理积木逻辑。

如何制作一个塔防小游戏(四)_游戏开发教程_07

在升级按钮的点击逻辑中,我们向所有的炮塔发送了“炮塔升级”的通知,所以,游戏中的所有炮塔都会接收到该通知,此时我们如何知道具体要升级的是哪个炮塔呢?这里就需要借助之前设置的“当前选中炮塔索引”这个全局变量了,使用这个变量和炮塔自身的局部变量“索引”进行比对,如果相等的话,就证明了当前需要升级的是该炮塔。确定了要升级的炮塔后,接下来设置一下炮塔的颜色以及两个属性就可以了。

至此,我们就完成了炮塔的升级处理,预览一下炮塔的升级效果。

如何制作一个塔防小游戏(四)_塔防游戏开发_08


如何实现炮塔的出售

接下来,看一下选项面板中出售按钮的积木逻辑。

如何制作一个塔防小游戏(四)_塔防游戏开发_09

同样很简单,根据之前设置的“出售的炮塔类型”全局变量,设置不同类型炮塔的出售价格,然后向所有的炮塔发送“出售炮塔”通知。

跟炮塔升级逻辑类似,我们也将炮塔出售逻辑放在炮塔自身中处理,来看出售炮塔的积木逻辑。

如何制作一个塔防小游戏(四)_塔防游戏开发_10

同样的,根据“当前选中炮塔索引”这个全局变量来决定要删除的是哪个炮塔,删除炮塔后,在当前炮塔的位置重新克隆一个“创建”炮塔的按钮。

预览一下出售炮塔的效果。

如何制作一个塔防小游戏(四)_小游戏_11

至此,如何制作一个塔防小游戏的所有内容就分享完了,这四篇系列教程或许不能帮助做出一个高质量的塔防游戏,但是至少也能够帮助你了解到在一个塔防游戏中都包含了哪些模块,每一个模块的实现思路是怎样的。这个系列教程只能帮助你完成一个基础的框架,至于最终能够做出一个怎样的塔防游戏,这个将由你来决定。


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料。

如何制作一个塔防小游戏(四)_塔防游戏开发_12

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

nYrzcJimKxjR