每个 pygame 都有一个如下所示的游戏循环:
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.flip()
print("tick " + str(pygame.time.get_ticks()))
clock.tick(1)
根据api get_ticks()
:
返回自调用 pygame.init() 以来的毫秒数。在初始化 pygame 之前,这将始终为 0。
但是clock.tick()
:
此方法应每帧调用一次。它将计算有多少 . 自上次调用以来已经过去了毫秒。
如果您传递可选的帧速率参数,该函数将延迟以使游戏运行速度低于给定的每秒滴答数。这可以用来帮助限制游戏的运行速度。通过每帧调用一次 Clock.tick(40),程序将永远不会以每秒超过 40 帧的速度运行。
我有点疑惑,是不是说clock.tick()
直接影响到游戏开始后经过了多少毫秒?
那么clock.tick(40)
意味着我每秒“发出” 40 帧,而 while 循环每秒运行 40 次?
我没有看到 fps 和滴答声之间的关系。
更新:我实际上只是对其进行了测试,并且get_ticks()
无论您给tick() - 0.1
or 30
or的 fps 是多少,它仍然以 mls 为单位返回实时时间60
。
因此,它似乎clock.tick()
只是设置了游戏应该运行多快或者while 循环应该多久更新一次,通过自身运行。
但是我仍然有点困惑,欢迎其他答案。