Установка фиксированного 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

Другие вопросы по тегам