求助贴:CocosCreator3.x动态创建多边形碰撞体不生效

  • Creator 版本:3.6.3

  • 目标平台:web

  • 重现方式:频现(出现率较高)

  • 在动态添加多边形碰撞体时,会频现不生效的情况:
    在控制台提示:
    Failed to find ear. There might be self-intersection in the polygon.
    polygon-shape-2d.ts:41 [Physics2D] b2PolygonShape failed to decompose polygon into convex polygons, node name: line

代码如下:

提示说是可能出现自相交的问题,这种怎么解决呢?我原以为是多边形的点有交叉的原因。但在一些情况下它是表现正常的。
image

上图是开始物理测试下的表现

可以搜一下类似 画一条刚体的绳子 之类的帖子,应该所有启发。

就是这样的需求,论坛里的关于刚体画线的帖子基本都扒了。多边形的路径点算法都是参照孙二喵大神的《救救小鸡》的帖子改的。2.x版本有physicSystem中的_createShape,可以用b2的setBox来自定义生成形状。3.x好像是移除了,没法直接调用b2,也没法重写_createShape,头很大。。。

目前通过给当前节点添加多个polygonCollider的方式替代上面根据路径生成一个多边形的方案,解决了问题。但还是想知道上面的思路有没有好的解决方法。

可以重写,不过要改下底层的代码,我自己改了之后才做出来

大佬,可以学习一下吗?不知道怎么改。

加我微信cffly100