Установка фиксированного FPS в игре Python 3
В настоящее время я делаю игру, используя PyGame (Python 3), и ищу способ заставить игру работать с фиксированным FPS.
Большая часть игры находится внутри гигантского цикла while, где берется пользовательский ввод, отображаются спрайты и т. Д. Каждый тик. Моя проблема в том, что запуск игры на медленном компьютере - это хорошо, но запуск на быстром компьютере делает игру слишком быстрой. Я могу, конечно, добавить time.sleep()
команда в конце цикла, но тогда игра будет работать слишком медленно на медленных компьютерах.
Есть ли способ заставить цикл занять определенное количество времени, чтобы пройти через? Заранее спасибо.
1 ответ
Используйте модуль часов в Pygame.
clock = pygame.time.Clock()
Затем в вашем основном цикле вызовите это один раз за кадр:
clock.tick(30) # Now your game will be capped at 30 fps
Чтобы узнать больше о модуле часов, ознакомьтесь с документацией: http://www.pygame.org/docs/ref/time.html