在 Python 3 游戏中设置固定 FPS

Setting a fixed FPS on a Python 3 game

我目前正在使用 PyGame (Python 3) 制作游戏,我正在寻找一种方法来制作游戏 运行 固定的 FPS。

游戏的大部分内容都位于一个巨大的 while 循环中,每次 tick 都会在其中获取用户输入、渲染 sprite 等。我的问题是 运行 在慢速计算机上运行游戏没问题,但 运行 在快速计算机上运行游戏会使游戏速度太快。当然,我可以在循环末尾添加一个 time.sleep() 命令,但是这样游戏在慢速计算机上会 运行 太慢了。

有没有办法让循环花费指定的时间运行通过?提前致谢。

使用pygame中的时钟模块。

clock = pygame.time.Clock()

然后在主循环中每帧调用一次:

clock.tick(30) # Now your game will be capped at 30 fps

要阅读有关时钟模块的更多信息,请参阅文档:http://www.pygame.org/docs/ref/time.html