在 PyGlet 中制作 Window
Make Window In PyGlet
我开始学习 PyGlet(Python 游戏框架)。我默认了window,但是当我把它滑到显示器的边缘时,它看起来像这样:
import pyglet
window = pyglet.window.Window(800, 600, "PyGlet Window")
pyglet.app.run()
有什么问题吗?感谢大家的支持!
这与缓冲区以及 windows 如何处理屏幕外的 windows 有关。 IIRC 它们被优化掉了, window 的缓冲区或区域不会被自动清除。如果您不清除它或没有事件触发重新渲染,则缓冲区中的任何内容都将是可见的。
最简单的解决方案是手动调用 .clear()
window 对象:
import pyglet
window = pyglet.window.Window(800, 600, "PyGlet Window")
def callback(dt):
print('%f seconds since last callback' % dt)
@window.event
def on_draw():
window.clear()
window.flip() # Not necessary, but probably doesn't hurt
pyglet.clock.schedule_interval(callback, 0.5) # called twice a second
pyglet.app.run()
任何时候你引发一个事件,绘制函数都应该被触发,如果你的 on_draw
包含 window.clear()
它应该清除所有旧的工件。
我开始学习 PyGlet(Python 游戏框架)。我默认了window,但是当我把它滑到显示器的边缘时,它看起来像这样:
import pyglet
window = pyglet.window.Window(800, 600, "PyGlet Window")
pyglet.app.run()
有什么问题吗?感谢大家的支持!
这与缓冲区以及 windows 如何处理屏幕外的 windows 有关。 IIRC 它们被优化掉了, window 的缓冲区或区域不会被自动清除。如果您不清除它或没有事件触发重新渲染,则缓冲区中的任何内容都将是可见的。
最简单的解决方案是手动调用 .clear()
window 对象:
import pyglet
window = pyglet.window.Window(800, 600, "PyGlet Window")
def callback(dt):
print('%f seconds since last callback' % dt)
@window.event
def on_draw():
window.clear()
window.flip() # Not necessary, but probably doesn't hurt
pyglet.clock.schedule_interval(callback, 0.5) # called twice a second
pyglet.app.run()
任何时候你引发一个事件,绘制函数都应该被触发,如果你的 on_draw
包含 window.clear()
它应该清除所有旧的工件。