Частота кадров влияет на скорость игры - PullRequest
2 голосов
/ 21 апреля 2020

Я тренируюсь на Pygame , и мне было интересно, как мы можем сделать так, чтобы частота кадров не влияла на скорость выполнения игры

Я бы например, FPS не должен быть заблокирован и игра всегда будет работать с одинаковой скоростью .

До сих пор я использовал функцию pygame.time.Clock.tick, но скорость персонажа менялся в зависимости от количества FPS, которое я не хочу.

1 Ответ

2 голосов
/ 21 апреля 2020

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  

    # [...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...