Pyglet:使用 on_resize() 事件导致我的文本消失
Pyglet : using on_resize() event causes my text to disapear
当我使用 on_resize() 事件时,我的文本没有显示。
更具体地说,问题来自 "return pyglet.event.EVENT_HANDLED" 语句。
这是一个简短的例子:
import pyglet;from pyglet.gl import *
window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)
@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED
@window.event
def on_draw():label.draw()
pyglet.app.run()
此代码导致黑屏。
我必须删除 on_resize 事件中的 return 语句才能使其正常工作。
我是不是漏掉了什么?
好吧,我仍然不明白为什么上面的代码不起作用,但我终于找到了解决方案:
import pyglet;from pyglet.gl import *
window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)
# adding gluPerspective, don't know why and dont want to use it, but no choice...
gluPerspective(60., window.width / float(window.height), .1, 1000.)
@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED
@window.event
def on_draw():
# adding a translation because of gluPerspective()
glPushMatrix()
glTranslatef(0, -200, -450)
label.draw()
glPopMatrix()
pyglet.app.run()
最后精度:gluPerspective 不能出现在 on_resize() 事件中,因为在这种情况下,一旦用户调整 window...
当我使用 on_resize() 事件时,我的文本没有显示。 更具体地说,问题来自 "return pyglet.event.EVENT_HANDLED" 语句。
这是一个简短的例子:
import pyglet;from pyglet.gl import *
window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)
@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED
@window.event
def on_draw():label.draw()
pyglet.app.run()
此代码导致黑屏。 我必须删除 on_resize 事件中的 return 语句才能使其正常工作。
我是不是漏掉了什么?
好吧,我仍然不明白为什么上面的代码不起作用,但我终于找到了解决方案:
import pyglet;from pyglet.gl import *
window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)
# adding gluPerspective, don't know why and dont want to use it, but no choice...
gluPerspective(60., window.width / float(window.height), .1, 1000.)
@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED
@window.event
def on_draw():
# adding a translation because of gluPerspective()
glPushMatrix()
glTranslatef(0, -200, -450)
label.draw()
glPopMatrix()
pyglet.app.run()
最后精度:gluPerspective 不能出现在 on_resize() 事件中,因为在这种情况下,一旦用户调整 window...