塔防游戏开发实战教程(1):实现防守塔,添加敌人的路径点

简介: 塔防游戏开发实战教程(1):实现防守塔,添加敌人的路径点

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



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


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


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


实现一个防守塔


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


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



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



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

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

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

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


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



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


一个需要注意的地方



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


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



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


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



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


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



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


为敌人设置路径点


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



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


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


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



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



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

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

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



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


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



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



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

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

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



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

相关文章
|
机器学习/深度学习 数据采集 数据可视化
数据驱动决策支持
数据驱动决策支持
427 3
|
6月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
672 1
|
10月前
|
机器学习/深度学习 算法 PyTorch
10招立竿见影的PyTorch性能优化技巧,让模型训练速度翻倍
本文系统总结了PyTorch性能调优的关键技术,涵盖混合精度训练、PyTorch 2.0编译功能、推理模式优化、Channels-Last内存格式、图优化与变换、cuDNN基准测试、内存使用优化等多个方面。通过实证测试,文章详细分析了各技术的实现细节、优势及适用场景,如混合精度训练可显著提升计算效率和内存利用率,torch.compile()能自动优化代码生成以加速模型运行。此外,还探讨了推理模式的选择、卷积操作优化及模型构建的最佳实践。这些方法结合良好的编码习惯,有助于开发者构建高效、可扩展的深度学习应用。
772 3
10招立竿见影的PyTorch性能优化技巧,让模型训练速度翻倍
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
962 1
|
存储 安全 芯片
内存卡无法格式化怎么办?这5个办法可以帮你
在日常生活中,我们常常使用内存卡来存储照片、视频、文档等重要数据。然而,有时候在尝试格式化内存卡时,我们可能会遇到无法格式化的问题。这种情况令人十分烦恼,因为这不仅影响了内存卡的使用,还可能导致数据丢失。那么,当内存卡无法格式化时,我们应该怎么办呢?本文将为您提供一些实用的解决方案,帮助您解决内存卡无法格式化的问题。
内存卡无法格式化怎么办?这5个办法可以帮你
|
传感器 存储 监控
什么是智慧工地?智慧工地管理平台有哪些功能?
智慧工地的智能化现场信息管理,减少人力物力的投入,加快了施工进度,能够缩短工期,提升经济效益。
4857 3
|
机器学习/深度学习 人工智能 算法
探索人工智能在农业领域的应用与前景
当谈到人工智能的应用领域时,农业往往被人们忽略。然而,人工智能技术在农业领域的应用正日益成为研究热点。本文将探讨人工智能在农业中的潜在应用价值和未来发展前景,揭示其在提高农业生产效率、资源利用和环境保护方面的巨大潜力。
394 2
|
安全 Java 开发者
JDK 9:模块化系统——重新定义Java的模块化架构
JDK 9引入了模块化系统,对Java的模块化架构进行了彻底的重新定义。本文将深入探讨模块化系统的原理、优势以及如何在实际开发中应用这一特性。
1062 2
|
SQL 关系型数据库 数据库