无论PyGame中的FPS如何,都能确保恒定的动画速度

时间:2013-04-26 10:52:24

标签: python pygame

我开始使用PyGame。有了(某些)Unity知识,我习惯将我的移动量乘以Time.timeDelta,这会使移动速度标准化。但是,如果我这样做:

delta = clock.tick(x)
circle.move(delta)
pygame.display.flip()

如果我计算圆圈到达目的地需要多长时间,我会在x的不同值上得到不一致的结果。在10 FPS时,它需要大约5.75秒,而在60 - 8秒时。

如何确保移动速度并获得良好的时间差异?

3 个答案:

答案 0 :(得分:1)

可能是由于截断坐标。如果您正在以60 fps的速度运行坐标,那么你的运动次数比10 fps要多很多次,所以运动可能会变慢。

在这种情况下,如果你围绕坐标,你可以获得更接近的结果。

另一个解决方案可能是将坐标保持为浮点数,因此您使用存储的浮点数作为基数计算运动,然后四舍五入以在int坐标中绘制精灵。

答案 1 :(得分:0)

您基本上将事物乘以事物......例如如果您以 60 fps 的速度移动...与 10 fps 相比...您希望将 10 fps 的速度乘以 6

答案 2 :(得分:-1)

您需要做的就是执行circle.move(x),其中x是您希望它移动的空间。 这样,FPS对你来说应该不是问题,无论如何都会移动距离。

只是我的猜测,抱歉,如果这不起作用。

- 哌