gpt4 book ai didi

python - pygame clock.tick() vs 游戏主循环中的帧率

转载 作者:太空狗 更新时间:2023-10-29 20:18:19 26 4
gpt4 key购买 nike

每个 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)

根据 get_ticks() 的 api:

Returns the number of millisconds since pygame.init() was called. Before pygame is initialized this will always be 0.

但是 clock.tick() :

This method should be called once per frame. It will compute how many . milliseconds have passed since the previous call.

If you pass the optional framerate argument the function will delay to keep the game running slower than the given ticks per second. This can be used to help limit the runtime speed of a game. By calling Clock.tick(40) once per frame, the program will never run at more than 40 frames per second.

我有点疑惑,是不是说clock.tick()直接影响游戏开始后经过了多少毫秒?

所以 clock.tick(40) 意味着我每秒“发出”40 帧,while 循环每秒运行 40 次?

我没有看到 fps 和 ticks 之间的关系。

更新:实际上,我只是对其进行了测试,无论您为 tick() - 0.130 提供什么 fps,get_ticks() 仍会以 mls 为单位返回实时时间或 60

所以看起来 clock.tick() 只是设置了游戏应该运行多快或者while 循环应该多久更新一次,通过它自己运行

不过我还是有点疑惑,欢迎其他答案。

最佳答案

FPS每秒帧数,是每单位时间显示的帧数。
1/FPS 是每帧之间应该耗时量。
Tick 只是 PyGame 中的时间度量。

clock.tick(40) 表示每一秒最多应该通过 40 帧。

关于python - pygame clock.tick() vs 游戏主循环中的帧率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com