Ваша проблема в этой строке:
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))))
Я считаю, что это должно быть:
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)))
Обратите внимание, как я изменил последний аргумент из формата ((tuple), (tuple))
на (tuple), (tuple))
. Я не знаком с pyglet, но обнаружил, что это правильный способ вызова batch.add()
из документации . Обратите внимание, что *data
представляет переменный список параметров в конце вызова функции, а не кортеж или список, как вы пытались.
Попробуйте и дайте нам знать, как это работает для вас.