Я использую pyglet.gl на anaconda3 и pycharm. Независимо от того, какой код я запускаю, он всегда имеет такую же ошибку:
Traceback (most recent call last):
File "D:/untitled5/learn.py", line 26, in <module>
window = MyWindow(1280,720, "My Pyglet Window", resizable=True)
File "D:/untitled5/learn.py", line 15, in __init__
self.triangle = Triangle()
File "D:/untitled5/learn.py", line 6, in __init__
('c3B', [100,200,220, 200,110,100, 100,250,100]))
File "C:\Users\the1s\.conda\envs\pyrer\lib\site-packages\pyglet\graphics\__init__.py", line 293, in vertex_list
return _get_default_batch().add(count, 0, None, *data)
File "C:\Users\the1s\.conda\envs\pyrer\lib\site-packages\pyglet\graphics\__init__.py", line 373, in add
vlist._set_attribute_data(i, array)
File "C:\Users\the1s\.conda\envs\pyrer\lib\site-packages\pyglet\graphics\vertexdomain.py", line 453, in _set_attribute_data
region.array[:] = data
ValueError: Can only assign sequence of same size
Process finished with exit code 1
Я попытался переустановить pyglet и удалить эту строку кода:
class Triangle:
def __init__(self):
self.vertices = pyglet.graphics.vertex_list(3, ('v3f', [-0.5,-0.5,0.0, 0.5,-0.5,0,0, 0.0,0.5,0.0]),
('c3B', [100,200,220, 200,110,100, 100,250,100]))
Это работает, но не делает то, что Я хочу. (Я хочу, чтобы он отображал треугольник) Вот мой код:
from pyglet.gl import *
class Triangle:
def __init__(self):
self.vertices = pyglet.graphics.vertex_list(3, ('v3f', [-0.5,-0.5,0.0, 0.5,-0.5,0,0, 0.0,0.5,0.0]),
('c3B', [100,200,220, 200,110,100, 100,250,100]))
class MyWindow(pyglet.window.Window):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_minimum_size(400, 300)
glClearColor(0.2, 0.3, 0.2, 1.0)
self.triangle = Triangle()
def on_draw(self):
self.clear()
self.triangle.vertices.draw(GL_TRIANGLES)
def on_resize(self, width, height):
glViewport(0, 0, width, height)
if __name__ == "__main__":
window = MyWindow(1280,720, "My Pyglet Window", resizable=True)
pyglet.app.run()
Это тот же код из видео по этой ссылке: https://www.youtube.com/watch?v=Wyv5TnkFuxE&list=PL1P11yPQAo7qaq_Ga-XA7TvuB8jyI3Qjh
Я также попробовал код из другого видео, которое также использовало pyglet.gl, и оно показало ту же ошибку.