-1

错误在第 5 行:glBindTexture(texture.target, texture.id)

1. import pyglet
2. from pyglet.gl import *
3. class CustomGroup(pyglet.graphics.Group):
4.    def set_state(self):
5.        glEnable(texture.target)
6.        glBindTexture(texture.target, texture.id)
7.    def unset_state(self):
8.        glDisable(texture.target)

NameError: global name 'texture' not defined 但我在第 2 行导入了它。完整的代码在这里

有什么帮助吗?我正在将 python 2.7.3 与 pyglet 和 ubuntu 12.04 一起使用

4

1 回答 1

0

pyglet.gl模块没有定义任何 variable texture,因此您在第 2 行中的 import 语句没有提供类似的东西。你甚至期望它包含什么?您需要自己创建Texture对象。

为此,您可以使用方法pyglet.resource.image,或者您可以通过调用pyglet.resource.texture来加载一个并通过访问图像的成员检索相应的对象,或者说,将其添加到一个.AbstractImagepyglet.image.loadTexturetextureTextureAtlas

为什么不添加到您的代码中:

img = pyglet.image.load('imagefile.png')
texture = img.texture

并且不要忘记相应地更改您vertex_list 纹理以使用纹理。

于 2013-10-15T14:45:10.680 回答