Pyglet更新批量数据
Pyglet update batch data
我正在使用 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()
Pyglets batch.add
returns 您可以操作的顶点对象。
将您的代码切换为如下所示:
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 对。
我正在使用 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()
Pyglets batch.add
returns 您可以操作的顶点对象。
将您的代码切换为如下所示:
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 对。