[艾兰岛][Ylands]从0开始学游戏开发_4.跟踪弹系统

点击查看效果展示视频

这次实战分享的功能是游戏内的跟踪弹系统,通过不到100行简单的代码其实就可以实现(2小时左右完成)。不仅如此,这段代码还顺便实现了子弹打中墙会消失,子弹击中玩家会掉血,玩家进入怪物视野盲区时跟踪弹失效等一系列功能,接下来,就让我对这几个功能的实现来一一解释。接下来就是见证奇迹的时刻了,我会分3块谈下我是怎么实现这个系统的:

1. 整体实现结构分析

2. 核心追踪弹系统实现

3. 子弹撞击消失效果实现

 

 结构分析

 

从整体逻辑大家可以看出,跟踪弹的核心功能只包含以下逻辑模块。

全局储存:统一管理公用函数,方便多个对象同时调用(游戏内怪物攻击逻辑统一管理)

时间触发器:指定时间间隔执行某项操作(用来调整跟踪弹的攻速和伤害)

触发区域:当物体进入触发区域内执行某项操作(子弹撞击墙壁后会消失)

实体储存:存储单个实体的变量

实体模块:根据物体创作模板(游戏内创建子弹模板,统一调用)

实体标签:用标签管理实体,方便高效(子弹打上不同标签,执行不同操作)

追踪弹核心系统

游戏开始时,时间触发器会时刻监控玩家所在的位置,一旦发现玩家在怪物的视野内,就会以本身为A点,玩家所在处为B点,不间断地生成子弹移动的效果,另外一个时间触发器会时刻检测生成子弹和玩家之间的距离,一旦发现子弹距离玩家很近时,就会执行逻辑,扣除玩家一定的生命值,这样一来,我们追踪弹的核心功能就完成啦。同时时间触发器也会时刻检测玩家的位置,一旦发现玩家处于敌人视野之外,就会停止攻击。

大家可以看到下图,游戏的这一段核心逻辑,只需用到不到100行的代码量

子弹撞击墙壁消失效果

这一段效果的实现就更加简单啦,只需要在墙壁处新增一块同样大小的触发区域,当带有标签的子弹进入区域后,移除该标签,并湮灭实体(就是消灭的意思,游戏内翻译问题 )。没想到吧,这一个看似复杂的功能,只需要三行代码就可以搞定~

 

今天的分享就到这里,如果大家有任何问题,也可以随时在这里和我沟通~当然这个作品在画面上还是很粗糙,但是艾兰岛本身的低多边形画面还算蛮有特色的,大家在这一块也可以多多提建议。

同时我也已经把组件文件上传到游戏内的创意工坊内,大家进游戏搜索“跟踪弹”就可以直接下载啦。

PS: 建了一个QQ交流群705482739,欢迎对于游戏开发感兴趣的同学加入,大家互相交流,互相进步!

猜你喜欢

转载自blog.csdn.net/qq_42959409/article/details/89034350