LibGdx:在游戏中保持一个 spriteBatch 作为单例还是每个屏幕一个 spriteBatch?

5
在LibGdx的SpriteBatch文档中提到,SpriteBatch是一个非常重的对象,因此您的程序中只应该有一个。但我有些困惑!我想知道在整个游戏中是否需要维护一个Singleton的SpriteBatch对象,还是像我找到的一些教程中所示,每个屏幕都有一个SpriteBatch对象。我还想知道将SpriteBatch保持为Singleton是否是一个好主意。谢谢!
1个回答

6
您可以在这里获取一些信息。
在我看来,您可以在每个Screen中使用1或2个SpriteBatch。如果将另一个Screen设置为当前屏幕,则会调用hide()方法,在那里您可以简单地dispose()您的SpriteBatch
这意味着您必须在show()方法中创建一个新的SpriteBatch
您可以在游戏中使用一个SpriteBatch,并且一个用于HUD/UI,而不会出现任何问题。但是,始终确保在调用另一个SpriteBatch之前调用end(),以便一次只有一个SpriteBatch处于活动状态。
当然,如果您不需要多个,则不应使用多个。如果您愿意,您还可以为整个游戏使用一个。但是要小心使用可能针对不同屏幕使用的不同ProjectionMatrix

谢谢您的解释。我也会查看链接。 - Mak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接