我是一名使用 libgdx 引擎的新程序员,并且想知道精灵批处理的行为。特别是如何在程序生命周期中将精灵添加到批处理中以进行绘制。到目前为止,精灵的所有示例都使用了一些类似于:
batch.begin();
sprite.draw(batch);
batch.end();
等的代码,我不清楚我将如何绘制不同数量的精灵,因为每个精灵 .draw 必须在批处理中调用......提前谢谢你解释!
问问题
339 次
1 回答
3
简单来说,将每次调用sprite.draw()视为在某个时间点绘制精灵的请求。每次调用sprite.draw() 都会将精灵添加到批处理中。当调用 batch.end()时,将绘制所有添加到批处理中的精灵并清空批处理。由于批处理的内容不是持久的(即,在调用 batch.end()时它被清空),因此每次使用时都必须将精灵和图像添加到其中。
在下面的示例中,所有要绘制的精灵都存储在精灵集合中,并在每次绘制时添加到批处理中,如果从render()方法调用它,则在每一帧上。
batch.begin();
for (sprite : sprites) {
sprite.draw(batch);
}
batch.end()
实际情况要复杂一些,因为 sprite 批次在满时会刷新并且在更多情况下会刷新,但一个好的经验法则是在每一帧上添加您想要绘制的所有内容。
于 2013-12-09T08:32:33.573 回答