所谓点燃,我们可以理解为范围响应 。
接触既点燃
首先要有范围距离的概念。
如何实现距离范围内的进行响应呢? 我们这样做,以当前实体位置 为原点,以想要响应的距离为半径。 绘制一个范围,那么范围内的所有实体都执行一个特定方法。
范围内接触的物体
比如 燃烧方法(执行了那么当前实体就燃烧) 也就是说范围内具有这个方法的实体就触发这个方法,实现点燃。 白话说,这个圈里的物体,能点燃的都开始燃烧吧。
大范围内点燃
被点燃的也以当前作为原点画圈 返回范围内物体。。。。链式反应
这样就实现了一个广播方式通知所有相邻的可燃烧的实体,燃烧吧。
当然 ,燃烧只是属性改变及表现。
不能燃烧的就不会燃烧
这个逻辑实现后。我们可以做任何功能实现,比如燃烧,连锁破碎等。
那么还有一个问题。就是这种传播逻辑是一个循环内实现的。
一下都触发了!这样是不行的。 我们可以给触发做一些条件限制,以及延时触发逻辑。
所谓延时触发,就是一个时间变量做为计时器基础。不断的帧循环内对这个记时数据做减法。
直到为零的时候,就启动本身对周围物体的传染逻辑。
燃烧性能测试
这样做之后,我们就实现了延时点燃,以及每次只点燃两个没有燃烧的实体。
最终实现 放火烧山的玩法。
全烧光光
至于火这个概念本身就有伤害属性。
再烧一次螃蟹
所以可以火攻这种策略玩法。
快速清场
那么下次我们聊聊如果用固定的事物实现简单的机关。
比如 热蒸汽无法通过,只能先去关掉它。
蒸汽墙
本日志不定时更新哈。直到引擎完善,会出视频教程。 请关注哈。