如何使得Box2D在不同帧率时的表现稳定、一致?

我在游戏中使用了Box2D物理引擎。
在主循环下的update中,使用函数
_physicsWorld->Step(dt, 8, 3);
传入两次更新中的间隔来对物理世界进行更新。但是发现在帧率不同时,物理世界的表现相去甚远。
但我在时间步函数中不是已经传入了更新的间隔吗?为什么仍会发生这种情况?
请问我应该怎么做呢?

(例如,在每秒60帧时,小球落地后能弹起15米;而在每秒30帧时,可能就可以弹起30米了)

1赞

顶一下。
猜测是不是与其后的8、3两个常量参数有关呢?

box2d 的step时间参数要固定,比如定为0.1秒,如果本帧超过0.1秒就执行多次step,直到最后一次step小于0.1

那按您的经验,每秒60帧的话,这个时间参数常量应该设置为多少呢?

这个看情况了,这篇文章就是讲fixed step的,你可以看看
http://gafferongames.com/game-physics/fix-your-timestep/

很有帮助。非常感谢您的指点。