LibGDX公共精灵批量为整个应用程序

时间:2016-01-25 19:53:29

标签: java android object memory-management libgdx

这里的问题是在Game类中是否有一个公共SpriteBatch是一个好主意,然后由所有Screen使用。这样可以避免在活动屏幕发生变化时重新分配对象。

但是,我看到人们在每个屏幕上都使用新的和私有的SpriteBatches。为什么人们会这样做?我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

你是对的。他们不应该这样做。如果你想保护它,你可以使它final。使用它的所有对象都应该知道设置它们所需的参数,例如应用它们自己的投影矩阵和混合模式。

答案 1 :(得分:1)

建议使用单个Batch实例,但我认为公共(或静态)变量不是一个好主意,因为它们会破坏封装并使重构代码变得更加困难。想象一下,将屏幕类移动到另一个应用程序:您必须替换Game扩展中对批处理的所有引用,否则您将被迫在另一个项目中创建此类字段。

相反,我会在屏幕构造函数中传递批处理。毕竟屏幕用于显示视图:无需告知它们应用程序的其余部分。