我有以下pyglet代码段,并且动画显示正确:
def update(dt):
for s in squares:
if(s.active):
s.update(dt)
s = [x for x in squares if x.active]
print len(s)
pyglet.clock.schedule_interval(update, 1/120.0)
@window.event
def on_draw():
window.clear()
b.draw()
我想要做的不是通过schedule_interval自动调用update来手动执行此操作,而是:
for i in range(0,100):
update(1/120.0)
on_draw()
pyglet.app.run()
这个问题是正确调用了更新函数,但是on_draw似乎被忽略了。弹出窗口,但内容仅在循环结束时绘制一次。
类似地,如果我在for循环之前放置pyglet.app.run()
,则绘制初始状态但不执行for循环。有什么建议吗?