我正在使用 Pyglet 开发一个简单的烛台图表绘图程序。当我尝试在一个循环中批处理形状时,pyglet 只绘制第一个形状(我认为)。我已经包含了一些最少的代码来解释我的问题。这段代码应该在窗口上显示 10 个又细又长的矩形,但我只得到一个矩形。
import pyglet
from pyglet import shapes
window = pyglet.window.Window(960, 540)
batch = pyglet.graphics.Batch()
for i in range(10):
rectangle = shapes.Rectangle(10*i, 100, 5, 100, color=(0,255,0), batch=batch)
@window.event
def on_draw():
window.clear()
batch.draw()
pyglet.app.run()
print(batch)
这样的事情很好用:
rectangle1 = shapes.Rectangle(10, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle2 = shapes.Rectangle(20, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle3 = shapes.Rectangle(30, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle4 = shapes.Rectangle(40, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle5 = shapes.Rectangle(50, 100, 5, 100, color=(0,255,0), batch=batch)
但这不会:
rectangle = shapes.Rectangle(10, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle = shapes.Rectangle(20, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle = shapes.Rectangle(30, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle = shapes.Rectangle(40, 100, 5, 100, color=(0,255,0), batch=batch)
rectangle = shapes.Rectangle(50, 100, 5, 100, color=(0,255,0), batch=batch)
这对我来说意味着批处理对象只是指批处理中的形状对象,这将使我无法使用 pyglet 批处理绘制图形数据的计划,我在这个假设中是否正确?
明月笑刀无情
相关分类