使用BitmapFont进行内存泄漏

时间:2016-10-09 03:31:36

标签: android memory-leaks libgdx bitmap-fonts

我目前正在使用LibGDX处理一个Android应用程序,并将我的内存泄漏精确定位到这一方法。任何人都可以帮我弄清楚这是从哪里来的?我试过回顾一下原生的LibGDX方法,但我仍然无法找到泄漏的位置。感谢

private void drawScore() {
    scoreLength = ("" + myWorld.getScore()).length();
    AssetLoader.shadow.draw(batcher, "" + myWorld.getScore(),
            165 - (3 * scoreLength), midPointY - 82);
    AssetLoader.font.draw(batcher, "" + myWorld.getScore(),
            165 - (3 * scoreLength) - 1, midPointY - 83);
}

1 个答案:

答案 0 :(得分:0)

最好的方法是预先计算所有数据,以便渲染不会进行任何字符串连接或其他操作。

所以当分数改变时:

  1. 更新分数字符串并将其存储在字段中;
  2. 计算位置并将其存储在Vector2字段中。
  3. drawScore上仅使用字段中的数据进行绘制。

    此外,您可以检查GlyphLayout以更好地计算字符串的位置。应用与以前相同的原则,不要在绘图时使用新的计算,也不要在分数变化时使用它们。