我正在看一段关于pyglet的视频,我试图创建一个三角形:
import pyglet
from pyglet.gl import *
class mywindow(pyglet.window.Window):
def __init__(self, *args,**kwargs):
super().__init__(*args,**kwargs)
self.set_minimum_size(300,300)
window = mywindow(300,300,"deneme", True)
def on_draw():
glBegin(GL_TRIANGLE)
glColor3b(255,0,0)
glVertex2f(-1,0)
glColor3b(0,255,0)
glVertex2f(1,0)
glColor3b(0,0,255)
glVertex2f(0,1)
window.on_draw()
pyglet.app.run()
当我运行这个代码时;我得到这个错误:
AttributeError: 'mywindow' object has no attribute 'on_draw'
你知道怎么解决这个问题吗
on_draw
必须是类mywindow
的方法,而不是函数。不要自己调用on_draw
,因为它是在需要更新窗口时自动调用的。在
on_draw
开始时,您必须通过(请参见Windowing)清除显示。OpenGL立即模式
glBegin
/glEnd
序列必须以^{GL_TRIANGLES
而不是GL_TRIANGLE
。如果要在[0255]范围内指定颜色,则必须使用^{glColor3b
(有符号字节)。必须在
on_resize
事件中通过^{请参见示例:
输出:
相关问题 更多 >
编程相关推荐