在 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() 它应该清除所有旧的工件。