Libgdx我不明白为什么libgdx将这行代码放在ActionSequence test中:stage.act(Math.min(Gdx.graphics.getDeltaTime(),1 / 30f));

时间:2015-11-05 07:39:08

标签: java libgdx

Libgdx我不明白为什么libgdx将这行代码放在ActionSequence测试中:

stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));

2 个答案:

答案 0 :(得分:1)

看起来他们想要确保测试至少以30 FPS运行。假设getDeltaTime()因任何原因返回5秒。然后将使用1/30秒。

答案 1 :(得分:1)

获取增量时间和1/30f的最小值可确保该值永远不会大于1/30f(这大约是"正常" delta时间值的两倍)。

限制增量时间可确保您的delta值不会过高。这通常发生在某些东西(例如垃圾收集器)导致hickup时。在这样的hickup期间,用户仍然可以看到前一个屏幕。你不想偏离太多,即使有一个hickup,以提供最好的用户体验。

例如:考虑像游戏一样的俄罗斯方块,其中网格中的块以给定的速度下降。如果块位于顶部,它将缓慢下降,用户可以向左和向右移动。现在考虑由于某种原因发生了hickup并且delta时间没有上限。然后块会在hickup期间挂在顶部,然后是下一帧,它会一直向下,而用户没有机会在两者之间移动它。