LibGDX Sprite在运行时批处理并添加新的精灵

时间:2013-12-09 08:14:30

标签: libgdx sprite spritebatch batching

我是一名使用libgdx引擎的新程序员,并且想知道sprite批处理的行为。具体来说,如何在程序生命周期中向批处理中添加精灵以进行绘制。到目前为止,所有sprite的例子都使用了类似的代码: batch.begin(); sprite.draw(batch); batch.end(); 我不清楚我是如何绘制不同数量的精灵,因为每个精灵.draw必须在批量中调用...提前感谢您的解释!

1 个答案:

答案 0 :(得分:2)

简单来说,将每次调用 sprite.draw()视为在某个时刻绘制精灵的请求。每次调用 sprite.draw()都会将精灵添加到批处理中。当调用 batch.end()时,将绘制添加到批处理中的所有精灵,并清空批处理。由于批处理的内容不是持久的(即,当调用 batch.end()时它被清空)所以每次使用它时都必须添加精灵和图像。

在下面的示例中,要绘制的所有精灵都存储在精灵集合中,并在每次绘制时添加到批处理中,如果从渲染中调用它,则会在每个帧上添加()方法。

batch.begin();
for (sprite : sprites) {
    sprite.draw(batch);
}
batch.end()

现实情况稍微复杂一些,因为精灵批处理在它已满并且在更多情况下会冲洗,但一个好的经验法则是在每一帧上添加你想要绘制的所有内容。 / p>