Мое приложение pyglet работает нормально, но я чувствую, что получаемый мной FPS является чрезмерно высоким и просто ненужным использованием процессора для моих нужд. Я получаю FPS, который, кажется, находится в диапазоне от 200 до 2000, когда мне действительно нужно около 60.
В более старых версиях pyglet есть функция под названием set_fps
, и вся существующая онлайн-справка, похоже, указывает к этой устаревшей функции, которую я не могу использовать.
В документах pyglet теперь говорится, что для ограничения материала вы должны использовать функцию pyglet.clock.schedule_interval
, которую я уже использую для своего метода update
, чтобы он мог быть звонил 60 раз в секунду: pyglet.clock.schedule_interval(update, 1 / 60.0)
. Это работает. Но мне нужно как-то сделать то же самое для моего события on_draw
моего окна. Запланировать это не представляется возможным.
Кто-нибудь знает, как ограничить FPS в пиглете?
Мой код не сильно отличается от примера игры в пиглете документация.
window = pyglet.window.Window()
@window.event
def on_draw(): # <----- how to limit how often this is called?
# ... perform ordinary window drawing operations ...
Изменить:
После некоторого неуклюжего времени я нашел решение, может быть, но не уверен, правильный ли это способ сделать это:
def draw_everything(dt):
# draw stuff here
@window.event
def on_draw():
draw_everything(None)
pyglet.clock.schedule_interval(draw_everything, 1/60)