我的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文档中的示例游戏没什么不同。
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)
似乎正确的做法是这样的:
def draw_everything(dt):
# draw stuff here
@window.event
def on_draw():
draw_everything(None)
pyglet.clock.schedule_interval(draw_everything, 1/60)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句