Обновление данных пакета Pyglet
Я использую партии Pyglet, чтобы нарисовать сотни квадов. Я хотел бы обновить положение вершин и значения цвета четырехугольников во время игры. Как я могу это сделать? Я просмотрел много документации Pyglet, и самое близкое, что я смог найти, это:
'c4f/static'
против
'c4f/dynamic'
Мое использование пакета выглядит следующим образом:
self.batch.add(4, GL_QUADS, self.texture,
('v3f/dynamic', self.verticies), ('c4f/dynamic', ((1.0,1.0,1.0,1.0)*4))
...
def on_draw(self):
self.batch.draw()
1 ответ
Решение
Pyglets batch.add
возвращает объект вершины, которым вы можете манипулировать.
Переключите ваш код так:
v = self.batch.add(4, GL_QUADS, self.texture, ('v3f/dynamic', self.verticies), ('c4f/dynamic', ((1.0,1.0,1.0,1.0)*4))
...
def on_draw(self):
for index in range(len(v.vertices)):
v.vertices[index] = v.vertices[index] +1
self.batch.draw()
Это грубый пример того, как манипулировать им, в конечном итоге вы хотите вмешаться range()
вызовите и обновите пары x,y.