我是一名使用libgdx引擎的新程序员,并且想知道sprite批处理的行为。具体来说,如何在程序生命周期中向批处理中添加精灵以进行绘制。到目前为止,所有sprite的例子都使用了类似的代码:
batch.begin();
sprite.draw(batch);
batch.end();
我不清楚我是如何绘制不同数量的精灵,因为每个精灵.draw必须在批量中调用...提前感谢您的解释!
答案 0 :(得分:2)
简单来说,将每次调用 sprite.draw()视为在某个时刻绘制精灵的请求。每次调用 sprite.draw()都会将精灵添加到批处理中。当调用 batch.end()时,将绘制添加到批处理中的所有精灵,并清空批处理。由于批处理的内容不是持久的(即,当调用 batch.end()时它被清空)所以每次使用它时都必须添加精灵和图像。
在下面的示例中,要绘制的所有精灵都存储在精灵集合中,并在每次绘制时添加到批处理中,如果从渲染中调用它,则会在每个帧上添加()方法。
batch.begin();
for (sprite : sprites) {
sprite.draw(batch);
}
batch.end()
现实情况稍微复杂一些,因为精灵批处理在它已满并且在更多情况下会冲洗,但一个好的经验法则是在每一帧上添加你想要绘制的所有内容。 / p>