这个pyglet错误是什么意思?

时间:2013-05-07 23:42:00

标签: python image pyglet

我试图blit一些简单的图像,并学习使用ImageGrid和其他函数,但同样的错误不断出现:

File "C:\Python27\lib\site-packages\pyglet\gl\lib.py", line 105, in errcheck
raise GLException(msg)
GLException: None

这是我的代码:

import pyglet
class test(pyglet.window.Window):
def __init__(self):
    super(game, self).__init__()
    img = pyglet.image.load('images/sprites.png')
    self.sprite = pyglet.resource.image('images/sprites.png')
    seq = pyglet.image.ImageGrid(img, 10, 9, 96, 96)
    self.sprite2 = pyglet.image.TextureGrid(seq)

def on_draw(self):
    self.sprite2.blit(25, 25, width=150, height=150)

1 个答案:

答案 0 :(得分:0)

好吧,首先,你的缩进是错误的。

我还在第4行看到错误,即您对super()的调用应为:

super(test, self).__init__()

这有点违反直觉,但第一个参数应该是这个类的名称,即你定义的那个。

在第5行中,您将图像加载到变量img中,但在第6行中,您还将第5行中的相同图像加载到第二个变量,即名为{{的实例变量1}}。此实例变量从未再次使用。 6号线是一种浪费。

要回答您的实际问题:我认为您的错误在于您是如何定义self.sprite事件的。你正在重载pyglet.window.Window类并尝试直接重载on_draw事件作为一种方法,而不是它的工作方式。创建一个类来保存您的图像,并在主.py文件中创建一个装饰器,将绘制事件推送到窗口。

on_draw

试试吧。但是,你的图像可能看起来有点奇怪,因为你的blit调用正在改变定位点并在两个方向上拉伸图像。