我在pygame上练习,我想知道我们怎样才能使帧率不影响游戏的执行速度
我希望FPS 不会被锁定,并且游戏始终以相同的速度运行。
到目前为止,我使用了该pygame.time.Clock.tick
功能,但角色的速度会根据 FPS 的数量而变化,这是我不想要的。
我在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
# [...]