pygame - 恒定帧率
pygame - constant frame rate
我想在我的 Pygame 游戏中实现尽可能恒定的帧速率。
此答案 () 解释了如何提供流畅且与帧速率无关的结果,但这与恒定帧速率不同。
我期望的是(30 FPS objective):
- 如果处理时间少于 1/30 秒,则休眠剩余的时间以避免使用所有 CPU 资源。
- 再多就别睡了
一个解决方案(但似乎不是最优的,不知道为什么):
... setup pygame...
clock = pygame.time.Clock()
# Main loop
while True:
...do some processing...
...possibly not same computation time every frame...
dt = clock.tick(0)
if dt < 1/FPS:
clock.tick(1/ (1/FPS - dt))
在@Rabbid76 的回答后编辑clock.tick
。
我相信您可以用您想要的帧速率调用 clock.tick()
,它会做正确的事情。也就是说,您可以将代码的最后三行替换为 clock.tick(FPS)
.
我想在我的 Pygame 游戏中实现尽可能恒定的帧速率。
此答案 (
我期望的是(30 FPS objective):
- 如果处理时间少于 1/30 秒,则休眠剩余的时间以避免使用所有 CPU 资源。
- 再多就别睡了
一个解决方案(但似乎不是最优的,不知道为什么):
... setup pygame...
clock = pygame.time.Clock()
# Main loop
while True:
...do some processing...
...possibly not same computation time every frame...
dt = clock.tick(0)
if dt < 1/FPS:
clock.tick(1/ (1/FPS - dt))
在@Rabbid76 的回答后编辑clock.tick
。
我相信您可以用您想要的帧速率调用 clock.tick()
,它会做正确的事情。也就是说,您可以将代码的最后三行替换为 clock.tick(FPS)
.