Я хочу написать лучший игровой цикл на Python, используя pygame.time.Clock()
, и я понимаю концепцию сохранения времени и отсоединения рендеринга от основного игрового цикла, чтобы лучше использовать тики.Я также понимаю про временную задержку рендеринга, чтобы он отображал правильное количество движения, но единственные примеры, которые я нашел, написаны на C #, и хотя я сначала подумал, что довольно просто преобразовать в Python, он не ведет себя.
Я понял, что Clock()
Pygame уже отрабатывает миллисекунды между двумя последними вызовами .tick, и я попытался адаптировать найденный мной пример кода, но мне действительно нужно увидеть работающийПример написан на Python.Вот что я придумала до сих пор:
FPS = 60
MS_PER_UPDATE = 1000 / FPS
lag = 0.0
clock = pygame.time.Clock()
running = True
# Do an initial tick so the loop has 2 previous ticks.
clock.tick(FPS)
while running:
clock.tick(FPS)
lag += clock.get_time()
user_input()
while lag >= MS_PER_UPDATE:
update()
lag -= MS_PER_UPDATE
render(lag / MS_PER_UPDATE)
Я не уверен, стоит ли все это в Pygame, или он уже позаботился в некоторых из своих time
функций.?Моя игра работает на ноутбуке медленнее (ожидаемо), но я подумал, что это может выровнять FPS между моим основным ПК и ноутбуком, отключив рендеринг.У кого-нибудь есть опыт выполнения этих продвинутых игровых циклов в Pygame?Я просто хочу, чтобы все было как можно лучше ...