好的,這裏是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