pygame.time.Clock.tick
возвращает количество миллисекунд, прошедших с момента предыдущего вызова. Если вы вызываете его в приложении l oop, то это количество миллисекунд, прошедших с последнего кадра.
Умножьте скорость игрока на время, прошедшее за кадр, чтобы получить постоянное движение, независимое от FPS. .
Например, определите расстояние в пикселях, которое игрок должен перемещать в секунду (move_per_second
). Затем вычислите расстояние на кадр в приложении l oop:
move_per_second = 500
FPS = 60
fun = True
clock = pygame.time.Clock()
while run:
ms_frame = clock .tick(FPS)
move_per_frame = move_per_second * ms_frame / 1000
# [...]