1

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

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

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

如何确保我的移动速度并获得良好的时间增量?

4

3 回答 3

1

也许是由于截断坐标。如果您正在调整坐标,则在 60 fps 时,您的调整次数比 10 fps 时要多得多,因此运动可能会更慢。

在这种情况下,如果您对坐标进行四舍五入,您可以获得更接近的结果。

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

于 2013-04-26T13:30:40.313 回答
0

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

于 2021-01-23T03:28:17.860 回答
-1

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

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

-点

于 2013-04-26T23:54:51.157 回答