python - 帧率影响游戏速度

标签 python pygame pygame-clock pygame-tick

我正在pygame上练习,我想知道如何才能使帧速率不影响游戏的执行速度

我希望FPS不被锁定并且游戏始终以相同的速度运行

到目前为止,我使用了pygame.time.Clock.tick函数,但是角色的速度正在改变取决于FPS的数量,我不知道想要。

最佳答案

您必须根据帧速率计算每帧的移动。

pygame.time.Clock.tick返回自上次调用以来的毫秒数。当您在应用程序循环中调用它时,这是自上一帧以来经过的毫秒数。将对象速度乘以每帧耗时即可获得恒定的运动,而与 FPS 无关。

例如,定义玩家每秒应移动的像素数距离 (move_per_second)。然后计算应用程序循环中每帧的距离:

move_per_second = 500
FPS = 60
run = True
clock = pygame.time.Clock() 
while run:
    ms_frame = clock .tick(FPS)
    move_per_frame = move_per_second * ms_frame / 1000  

    # [...]

关于python - 帧率影响游戏速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61352366/

相关文章:

python - 在 Python 记录器中覆盖 lineno 的最佳方法

python - 熔化和删除重复数据帧的反转

python - 计算 GCD - 如何检查列表中的每个元素

python - Mac Mojave 上的 Pygame

python - Pygame - 重力法

python - * 之后的 add() 参数必须是序列,而不是 Settings

python - Pygame 移动物体/图像重复自身

python - 有没有办法根据条件将 "fork"列表分成两部分

python - win.blit()后台pygame时出现滞后