是否可以在Box2D中进行快进模拟

是否可以在Box2D中进行快进模拟,box2d,simulation,Box2d,Simulation,我创建一个box2d世界,在屏幕上放置一些具有不同属性的对象,如旋转、恢复、密度。然后我启动应用程序。是否可以快进模拟,以便快速查看结果?我所说的结果是指世界物体的最终状态。就像视频剪辑一样。多亏了Andrew,我发现如果我多次运行Step函数,我就可以得到快进模拟。以下是我想任何人都可以编写的一段代码: -(void)simulateWithFastForwardRate:(int)ffRate timeStep:(float32)timeStep ve

我创建一个box2d世界,在屏幕上放置一些具有不同属性的对象,如旋转、恢复、密度。然后我启动应用程序。是否可以快进模拟,以便快速查看结果?我所说的结果是指世界物体的最终状态。就像视频剪辑一样。

多亏了Andrew,我发现如果我多次运行Step函数,我就可以得到快进模拟。以下是我想任何人都可以编写的一段代码:

-(void)simulateWithFastForwardRate:(int)ffRate timeStep:(float32)timeStep
                    velocity:(int)velIters 
       andPositionIterations:(int)posIters{
     for(int i=0;i<ffRate;i++){
       _world->Step(timeStep,velIters,posIters);
     }
}
-(void)模拟FastForwardRate:(int)ffRate timeStep:(float32)timeStep
速度:(int)velIters
andPositionIterations:(int)posIters{
for(int i=0;iStep(timeStep、veliter、positer);
}
}

只需运行上面的方法,将快进速率、速度和位置迭代传递给它。

多次运行Step函数。但它的成本很高,谢谢Andrew。这正是我所需要的。无论如何,我需要它用于调试目的。@MikeJM,你应该将解决方案作为答案发布并接受它。@JSuar,出于礼貌,我在等待Andrew的回答发布它,因为这是他多次运行Step的想法。@MikeJM,是的,我听到了。我想他可能不会,因为这只是一个建议/评论。不管怎样,谢谢。