【问题标题】:LibGdx : Keep one spriteBatch as singleton in Game? Or one spriteBacth per Screen?LibGdx:在游戏中保持一个 spriteBatch 作为单例?还是每个屏幕一个 spriteBacth?
【发布时间】:2014-04-02 09:49:06
【问题描述】:
在 LibGdx SpriteBatch 文档中。据说
SpriteBatch 是一个非常重的对象,因此您的程序中应该只有一个。
但我有点困惑!我想知道我是否必须在所有游戏中维护一个 SpriteBatch(作为单例)或每个屏幕有一个 SpriteBatch,如我目前发现的几个教程中所示。
我还想知道将 SpriteBatch 保持为单例是否是个好主意。
提前谢谢你。
【问题讨论】:
标签:
java
android
libgdx
spritebatch
【解决方案1】:
你可以得到一些信息here。
在我看来,每个 Screen 可以有 1 个甚至 2 个 SpriteBatchs。如果您将另一个Screen 设置为当前hide() 方法将被调用,您可以简单地dispose() 您的SpriteBatch。
这意味着,您必须在 show() 方法中创建一个新的。
您可以将一个SpriteBatch 用于游戏,一个用于HUD/UI,没有任何问题。但请始终确保在调用begin() 之前先调用end(),以便一次只有一个SpriteBatch 处于活动状态。
当然,如果您不需要多于一个,则不应使用多于一个。如果你愿意,你也可以为整个 gmae 准备一个。但请注意可能用于不同屏幕的不同ProjectionMatrixes。