我在玩 Pygame,制作一些简单的游戏只是为了学习它。但是,我很难以我想要的方式实现 fps。
据我了解,fps 通常设置为:
import pygame
...
clock = pygame.time.Clock()
while True:
clock.tick(60)
然后在整个程序中,我确保每个循环/帧的写入时间为 1/60 秒,这样我就可以让对象也以我想要的速度移动。将滴答声增加到 120 fps 会使游戏运行过快,而降低它会使游戏运行过慢。
但是,这不是我熟悉的 fps 为任何其他游戏工作的方式。在大多数游戏中,fps 可以随心所欲地变化(通常取决于系统运行应用程序的好坏),但游戏将始终以相同的速度运行(例如,在屏幕上移动 100 个像素将需要 1 秒那一秒发生了多少帧)。
我能想到让它以我想要的方式工作的唯一方法是每帧获取当前的 fps,并将其纳入每个运动或基于时间的事件的计算中。但这似乎不必要地复杂,我想知道我是否完全错过了为我解决这个问题的 pygame 功能的一部分。