【发布时间】:2020-07-11 18:23:54
【问题描述】:
我的 pyglet 应用程序运行良好,但我觉得我得到的 FPS 太高了,我的需要只是不必要的 CPU 使用。我得到的 FPS 似乎在 200-2000 之间,而我实际上只需要大约 60。
在旧版本的 pyglet 中,有一个名为 set_fps 的函数,所有现有的在线帮助似乎都指向这个我不能使用的已弃用函数。
pyglet 文档现在说,要限制内容,您应该使用 pyglet.clock.schedule_interval 函数,我已经将它用于我的 update 方法,以允许每秒调用 60 次:pyglet.clock.schedule_interval(update, 1 / 60.0)。这行得通。但是我需要以某种方式为我的窗口的on_draw 事件做同样的事情。安排这个似乎是不可能的。
有人知道如何限制pyglet中的FPS吗?
我的代码与 pyglet 文档中的 example game 差别不大。
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)
【问题讨论】:
-
这是正确的做法:)
-
@Torxed 这不会每秒调用
draw_everything60 次并且每当窗口调用on_draw时?
标签: python frame-rate pyglet