自己的引擎 - 10 燃烧吧,连锁反应的实现


3楼猫 发布时间:2025-01-19 15:05:32 作者:玩家78123443 Language

所谓点燃,我们可以理解为范围响应 。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第0张

接触既点燃

首先要有范围距离的概念。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第1张

如何实现距离范围内的进行响应呢? 我们这样做,以当前实体位置 为原点,以想要响应的距离为半径。 绘制一个范围,那么范围内的所有实体都执行一个特定方法。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第2张

范围内接触的物体

比如 燃烧方法(执行了那么当前实体就燃烧) 也就是说范围内具有这个方法的实体就触发这个方法,实现点燃。 白话说,这个圈里的物体,能点燃的都开始燃烧吧。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第3张

大范围内点燃

被点燃的也以当前作为原点画圈 返回范围内物体。。。。链式反应

这样就实现了一个广播方式通知所有相邻的可燃烧的实体,燃烧吧。

当然 ,燃烧只是属性改变及表现。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第4张

不能燃烧的就不会燃烧

这个逻辑实现后。我们可以做任何功能实现,比如燃烧,连锁破碎等。

那么还有一个问题。就是这种传播逻辑是一个循环内实现的。

一下都触发了!这样是不行的。  我们可以给触发做一些条件限制,以及延时触发逻辑。

所谓延时触发,就是一个时间变量做为计时器基础。不断的帧循环内对这个记时数据做减法。

直到为零的时候,就启动本身对周围物体的传染逻辑。

燃烧性能测试

这样做之后,我们就实现了延时点燃,以及每次只点燃两个没有燃烧的实体。

最终实现 放火烧山的玩法。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第5张

全烧光光

至于火这个概念本身就有伤害属性。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第6张

再烧一次螃蟹 

所以可以火攻这种策略玩法。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第7张

快速清场

那么下次我们聊聊如果用固定的事物实现简单的机关。

比如 热蒸汽无法通过,只能先去关掉它。

自己的引擎 - 10 燃烧吧,连锁反应的实现-第8张

蒸汽墙

本日志不定时更新哈。直到引擎完善,会出视频教程。 请关注哈。


© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com