好的,这里是pyglet中的一个完整的工作示例。它显示文字“hello world”,随意在窗口周围散步,并在每次按下按键时转储截图(使用与您发布的代码完全相同的行)。
import pyglet, random
window = pyglet.window.Window()
label = pyglet.text.Label('Hello, world',
font_name='Times New Roman',
font_size=36,
x=window.width//2, y=window.height//2,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
@window.event
def on_key_press(symbol, modifiers):
pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png')
def update(dt):
label.x += random.randint(-10, 10)
label.y += random.randint(-10, 10)
pyglet.clock.schedule_interval(update, 0.1)
pyglet.app.run()
截图不停止事件循环。 pyglet中的事件循环只是懒惰的,并尽可能少做一些工作。如果你想让事情继续发生,你需要安排一个重复运行的函数。否则,它将等待一个有附加监听器的事件发生。 (你的代码必须在监听鼠标事件,这就是为什么当你点击鼠标时恢复工作的原因。)
简短的回答,我怀疑你需要的修复是pyglet.clock.schedule_interval(...)
。
简单 - 奖励我的赏金! ;) – chmullig 2011-02-23 17:41:01
我没理由。 ;) – 2011-02-23 17:42:09