バグをPygletで処理しようとしていましたが、 pyglet/graphics/__init__.py
ファイル。私の推測では、ジオメトリをバッチに追加するときに構文的に間違ったことをやっているということです。pygletでバッチを作成しようとすると "too pack values to unpack error"というエラーメッセージが表示される
私はエラーを作成する重要な部分に私のコード削減:
from pyglet.gl import *
from pyglet.graphics import *
import pyglet
batch = pyglet.graphics.Batch()
img = pyglet.image.load('pic.png')
texture = img.get_texture()
class TextureEnableGroup(pyglet.graphics.Group):
def set_state(self):
glEnable(GL_TEXTURE_2D)
def unset_state(self):
glDisable(GL_TEXTURE_2D)
texture_enable_group = TextureEnableGroup()
class TextureBindGroup(pyglet.graphics.Group):
def __init__(self, texture):
super(TextureBindGroup, self).__init__(parent=texture_enable_group)
self.texture = texture
def set_state(self):
glBindTexture(GL_TEXTURE_2D, self.texture.id)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
def __eq__(self, other):
return (self.__class__ is other.__class__ and self.texture == other.__class__)
batch.add(12, GL_TRIANGLES, TextureBindGroup(texture), (('t2f', (0, 0)), ('v3f', (64, 64, 0)), ('t2f', (1, 1)), ('v3f', (-64, -64, 205)), ('t2f', (0, 1)), ('v3f', (-64, 64, 205)), ('t2f', (1, 1)), ('v3f', (64, -64, 205)), ('t2f', (1, 0)), ('v3f', (64, 64, 0)), ('t2f', (0, 1)), ('v3f', (-64, -64, 205))))
私はgoogleを使って考えましたが、rpoblemはpygletのpythonファイルのどこかでエラーが発生したということでした。ですから、私はbatch.add()関数を何らかの方法で正しく使用していないと思います。問題は、私はそれをどのように使うべきですか? – Bartvbl
そのためにpygletドキュメントを読む必要があります。あなたはあなたが飼いたいものを食べていますか? *の構文は読み取れません。代わりにいくつかの変数を使うのはどうですか? –