【问题标题】:Should i call dispose() texture when create another texture in Libgdx?在 Libgdx 中创建另一个纹理时,我应该调用 dispose() 纹理吗?
【发布时间】:2016-01-26 13:45:42
【问题描述】:

我正在使用 Libgdx 创建游戏。我的游戏将加载图像并在屏幕上显示如下:

sprite = new Sprite(texture1);

然后它会在几秒钟内加载另一个图像并显示它。

sprite = new Sprite(texture2);

那么,我应该在加载第二张图片之前致电spirte.getTexture().dispose() 吗? 或者当我们创建新的 Sprite 时,第一个 Texture 会自动处理?

【问题讨论】:

    标签: java android libgdx textures sprite


    【解决方案1】:

    是的,必须在丢失对它的引用之前在任何一次性对象上调用它,否则会发生内存泄漏。

    如果您打算在游戏的整个生命周期中使用纹理,您可能不需要处置它,但在 Android 上您仍然需要在游戏的处置方法中,因为在某些情况下 Android 会关闭关闭您的 Activity 而不是整个应用程序,因此当用户重新打开您的游戏时,之前的所有纹理都会泄露。

    【讨论】:

    • 非常感谢。在那种情况下你是对的,但我仍然不清楚并且有一个问题。当我们第二次创建新的 Sprite 时,第一个图像是否仍然保存在内存中?我认为第二张图片会覆盖内存区域,已经保存了第一张图片,我们不需要再调用 dispose() 了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多