我是一位与libgdx引擎一起工作的新程序员,并且对精灵批处理的行为感到疑惑。特别是如何在程序生命周期中向批处理添加精灵。到目前为止,所有精灵的例子都使用了一些类似的代码: batch.begin(); sprite.draw(batch); batch.end();
等等,而且我不清楚自己如何绘制不同数量的精灵,因为每个精灵都必须在批处理中调用。谢谢提前解释!LibGDX Sprite批处理并在运行时添加新的精灵
3
A
回答
2
简而言之,将每次调用sprite.draw()想象为在某个点绘制精灵的请求。每次调用sprite.draw()都会将该精灵添加到批处理中。当调用batch.end()时,所有添加到该批处理的精灵将被绘制并且该批处理将被清空。由于该批次的内容不是持久的(即在调用batch.end()时清空),因此每次使用它时都必须添加精灵和图像。
在以下示例中,要绘制的所有精灵都存储在精灵集合中,并且每次绘制时都将其添加到该批处理中,如果从一个render( )方法。
batch.begin();
for (sprite : sprites) {
sprite.draw(batch);
}
batch.end()
现实的情况是更复杂一点,因为精灵批量已满时,下了几个情况会刷新,但一个好的经验法则是添加你要画上的每个一切,每一帧。
+0
这正是我所寻找的感谢你的解释 – TypingTurtle
相关问题
- 1. Libgdx改变精灵批处理的着色器
- 2. 用批处理绘制一个部分精灵 - LibGdx
- 3. Sprite Sheet - 在旧精灵之上绘制的新精灵
- 4. 使用Sprite.draw时未绘制的Sprite类(批处理)LibGDX
- 5. 在运行时添加精灵时XNA 4.0游戏崩溃
- 6. LibGDX正确处理点精灵进行群集?
- 7. LIBGDX如何从纹理地图集中添加精灵
- 8. 绘制精灵Libgdx
- 9. Libgdx - 最大精灵
- 10. 在libgdx中倾斜精灵
- 11. 如何添加@NotNull批注的运行时处理
- 12. 运行系统中的精灵渲染器中的Unity Change sprite
- 13. libGDX所有纹理/精灵白色块
- 14. 静态sprite批处理?
- 15. 如何将运行时参数添加到批处理文件?
- 16. 处理粒子精灵
- 17. 删除精灵Libgdx Java
- 18. Libgdx未能画出精灵
- 19. 删除精灵Libgdx Java
- 20. 旋转精灵触摸libgdx
- 21. Libgdx使用转换精灵
- 22. libgdx - 精灵不旋转
- 23. 在一个精灵中组合两个精灵(Libgdx)
- 24. 狡猾,添加精灵的
- 25. LibGDX在精灵上的黑色边框
- 26. 使用单个精灵进行批处理动画精灵效率更高吗? (cocos2d的)
- 27. 使用资产经理LibGDX加载精灵
- 28. LibGDX整个应用程序的公开精灵批次
- 29. 如何从精灵的arrayList中移除精灵并在精灵发生碰撞时将其从精灵屏幕中移除? Java/Libgdx
- 30. 在txt文件中添加新行Windows批处理
看看舞台演员系统。它已经实现了一个“舞台”,您可以添加所有演员。通过一个简单的抽象舞台,它吸引了每个演员的当前位置和当前状态。你可以看看它的代码来理解系统。也可以看看gameloop概念。 – BennX
伟大的建议头脑=吹了benn! – TypingTurtle