和上次一樣,我遇到了一個新問題。當我移動鼠標時,FPS從大約60增加到500以上。我知道你在想什麼;這是不是因爲on_draw()
被炒每個事件(我認爲),因爲我已經做了pyglet.app.EventLoop.idle
覆蓋:更多Pyglet - 禁止鼠標移動事件?
class EventLoop:
def idle(self):
pyglet.clock.tick(poll=True)
return pyglet.clock.get_sleep_time(sleep_idle=True)
pyglet.app.EventLoop = EventLoop()
而且我所說的窗口flip()
在我的繪圖功能。所有無用的鼠標移動事件佔用了大量的CPU,這很煩人。我能做些什麼呢?
編輯
我加window.invalid = False
我的繪圖功能和window.invalid = True
我的更新功能,這似乎降低與其它鼠標操作的CPU使用率。
編輯2
繪圖函數是一個典型的on_draw()
功能。
編輯3
經過一番調查多,看來,我認爲他們會所有這些事件沒有采取太多的CPU。如果這是Pyglet應該採取行動的方式,或者應該避免這種情況,那麼仍然很好。
可能的重複[在Python中使用pyglet,爲什麼我的幀速率加快,如果我鼠標拖動?](http://stackoverflow.com/questions/10523931/using-pyglet-in-python-why-does -my-frame-rate-speed-up-if-i-mouse-drag) – timday
我同時執行'schedule_interval'和'set_fps_limit',並且遊戲在沒有事件的情況下運行60-80 fps。 – Syklis