求大神帮忙看一个物理碰撞边界问题

  • Creator 版本:2.0

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:

  • 额外线索:

使用 cocos 物理引擎的时候,如果2个刚体边界刚好相切挨着,也会产生碰撞。 如图:


图1

图2

方块大小 72 * 72,设置底部方块坐标(0,x),上面方块坐标(72,y) ,掉落下来只是边界相切,但也产生了碰撞效果。能有什么办法针对这种只是相切没有发生像素覆盖的情况不产生碰撞效果呢?

如果碰撞盒大小与render的大小相同,那掉下来碰撞肯定不会有像素覆盖啦。像素覆盖意味着刚体之间有嵌入,这样的话物理引擎会计算出一个超大的斥力,从而表现出现bug。因此都是相切即为碰撞,这钟情况不止box2d,包括physX等其他的物理引擎也是这样处理的。
为了避免这种问题两个处理手段:
1、允许sleep,并且sleep的值设置要合理,避免静止的刚体持续出发碰撞。
2、从碰撞结果上做过滤进行处理的,结合物体的其他属性判断是否需要处理这个碰撞。