在 Libgdx 中创建另一个纹理时,我应该调用 dispose() 纹理吗?
Should i call dispose() texture when create another texture in Libgdx?
我正在使用 Libgdx 创建游戏。我的游戏将加载图像并显示在屏幕上,如下所示:
sprite = new Sprite(texture1);
然后它会在几秒钟内加载另一张图片并显示它。
sprite = new Sprite(texture2);
那么,我应该在加载第二张图片之前调用 spirte.getTexture().dispose()
吗?
或者当我们创建新的Sprite时,第一个Texture会自动处理?
是的,在您失去对它的引用之前必须在任何一次性对象上调用它,否则会发生内存泄漏。
如果您要在游戏的整个生命周期中使用纹理,您可能不打算处理它,但在 Android 上,您仍然必须在游戏的处理方法中进行处理,因为那里在某些情况下 Android 会关闭您的 Activity 但不会关闭整个应用程序,因此当用户重新打开您的游戏时,所有之前的纹理都会泄露。
我正在使用 Libgdx 创建游戏。我的游戏将加载图像并显示在屏幕上,如下所示:
sprite = new Sprite(texture1);
然后它会在几秒钟内加载另一张图片并显示它。
sprite = new Sprite(texture2);
那么,我应该在加载第二张图片之前调用 spirte.getTexture().dispose()
吗?
或者当我们创建新的Sprite时,第一个Texture会自动处理?
是的,在您失去对它的引用之前必须在任何一次性对象上调用它,否则会发生内存泄漏。
如果您要在游戏的整个生命周期中使用纹理,您可能不打算处理它,但在 Android 上,您仍然必须在游戏的处理方法中进行处理,因为那里在某些情况下 Android 会关闭您的 Activity 但不会关闭整个应用程序,因此当用户重新打开您的游戏时,所有之前的纹理都会泄露。