Pyglet更新批处理数据

时间:2017-05-21 02:50:50

标签: python opengl draw 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 个答案:

答案 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对。

相关问题