我正在使用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()
答案 0 :(得分: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对。