这不是this question的复制,因为我需要一种方法来加速我的世界,而不改变deltaTime,让一切发生得更快。为什么我不能使用deltaTime或者改变它呢?我使用速度Verlet辛积分来模拟轨道力学,为了提高精度,deltaTime被要求尽可能低。因此,我将其设置为Gdx.graphics.getDeltaTime() * 0.001f。我在Java中使用LibGDX,如果有必要,我将使用Game来构造我的屏幕。
我试过或想过什么?
使用高阶辛积分器将不需要较小的deltaTime,但很难实现,这是我的计划B,如果这是不可能的。
发布于 2022-07-31 19:27:05
你说的不重复的问题实际上很可能是你的解决方案。
您的目标是有小的时间步长的Gdx.graphics.getDeltaTime() * 0.001f.当我们使用framerate 60 can时,它可以写为1f / 60f * 0.001f。所以你现在的时间步骤是关于0.000017的。这是您想要用于Constants.TIME_STEP的值。
然后,您只需要用调用物理函数来替换WorldManager.world.step。作为参数传递的增量时间是Constants.TIME_STEP。
但是由于你的时间步长很小,会有大量的对物理函数的调用,这意味着它必须是快速的,或者你必须找到一种减少时间步长的方法。
https://stackoverflow.com/questions/73150798
复制相似问题