如何在box2d物理引擎中实现“时间压缩”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在box2d物理引擎中实现“时间压缩”?相关的知识,希望对你有一定的参考价值。

我正在Andengine中使用物理实现一个游戏。物理看起来很真实,但游戏感觉缓慢而无聊。有什么方法可以改变物理引擎的时间,以防我想实现一些时间压缩,如快进或慢动作?

我想要做的唯一方法是重写PhysicsWorld的onUpdate方法,并将经过的秒数乘以一个因子,但我害怕破坏引擎的一些内部计算。

@Override
public void onUpdate(final float pSecondsElapsed) {
    super.onUpdate(pSecondsElapsed * mTimeCompression);
}
答案

(这应该是一个评论,但我还没有足够的代表。)

我认为您对破坏内部计算的怀疑是正确的 - 请参阅:https://gafferongames.com/post/fix_your_timestep/

问了一个类似的问题,解决方案涉及多次调用step(在你的情况下似乎是onUpdate)而不是改变时间步骤本身:Is it possible to fast forward simulation in Box2D

以上是关于如何在box2d物理引擎中实现“时间压缩”?的主要内容,如果未能解决你的问题,请参考以下文章

实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D

Qt 5.10 集成 Box2D 物理引擎

Box2d刚体轨迹预测

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检測

在并行位片代码中实现快速计数器

带有内部 box2d 物理崩溃的 SpriteKit 游戏