box2d 改变物理系统的重力,弹性小球落地后会持续抖动

creator 版本 2.0.10 / 2.1.x。
如果将物理系统的 重力 设置为默认值的5倍 (-320*5),
弹性为0.5 的 小球在落地后,在贴近地面处会无限反弹,看起来的效果就是在无限抖动,小球的线性速度始终不会衰减。

  • 在物理重力为-320的默认值时,小球弹性设置任意值,表现正常。
  • 重力为5倍, 小球弹性为0的情况下,表现正常。

(图中,球1 为修正后的效果,球2为不正常的表现)

目前用了一个临时解决办法,短时间内反弹多次就手动 把刚体awake关闭。不知道有没有更合理的方法避免这个问题。

工程文件:
assets.zip (10.6 KB)


参考下这个方案。

我用的是计时器方案解决的。
虽然可以通过下面的方式修改内部宏解决:
https://docs.cocos.com/creator/manual/zh/physics/physics/advanced-settings.html
但是不太优雅,因为修改会对所有项目造成影响,而且自己改了,别人打开项目又不正常了。
要是box2d.js 的 参数能按每个项目配置化就好了。

默认重力值如何获取的