帧率影响游戏速度

Tan*_*gax 2 python pygame pygame-clock pygame-tick

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

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

到目前为止,我一直在使用该pygame.time.Clock.tick功能,但角色的速度会根据 FPS 的数量而变化,这是我不想要的。

Rab*_*d76 5

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

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  

    # [...]
Run Code Online (Sandbox Code Playgroud)