碰撞组件节点过多导致帧率下降

碰撞组件节点过多导致帧率下降非常卡,我看别人做的贪吃蛇大作战也非常多的组件节点,也挺流畅的啊,有什么好的解决方案

这种大量的节点的简单碰撞不需要用组件,用引擎组件开销大。
贪吃蛇这种,给场景分区,比如8*8=64个区域,每条蛇每个节点分配到所在区域,蛇头行进时只与所在区域内节点碰撞
碰撞判定算法就是简单的长方形相交判定啊,一行代码

2赞

赞同楼上的方案。这实际上就是需求简化到能满足游戏表现需要就行了,你现在的实现我猜测是贪食蛇每节都是一个圆形碰撞体,那碰撞体数量是非常大的,实际上可以简化为楼上说的多个长方形,就是蛇体从头开始到每个折角做一个长方形。另外,引擎的碰撞体计算是通用的,可以简化为更简单的判断。楼上还提到了空间划分方案,也是非常有效的降低开销的方法

1赞

那我使用bump.js那个组件可以吗?或者就是把区域划分为64个,然后每条蛇作为一个碰撞体,然后在去检测蛇头的位置,来进行吃食物和碰撞之类的处理吗?

是的,我现在就是每一个节都是一个碰撞体,大概30条蛇,最大50节,还有100颗的食物,我试试楼上的做法

另外,节与节之间不用检测碰撞,只需要检测头和其他蛇的身体节就行了

那我使用物理组件那个绳子关节组件的话,把身体那些节拼到一起去 这样是不是就不会检测身体的节与节之间的碰撞?

请问解决没? 我也是在做贪吃蛇遇到了一样的碰撞问题,求教一下