Andengine - 使用TexturePacker Spritesheet增加内存使用量

时间:2013-04-01 15:08:17

标签: android andengine game-engine texturepacker

我正在使用andengine为Android平台开发游戏。 我过去常常通过应用程序检查内存使用情况。

这是使用spritesheets之前的内存使用情况 enter image description here

后来我开始了解SpriteSheet和Andengine的TexturePackerExtension

我尝试在我的应用中使用它。我创建了一个包含整个游戏所需图像的spritesheet。

当我加载它时,我的堆增加了比前一个堆。

enter image description here

我假设使用SpriteSheet后堆会减少 出了什么问题?
我该怎么做才能使用SPriteSheet和TexturePackers管理内存。

软件使用:

  1. CodeANdWeb.com
  2. 的TexturePacker
  3. AndEngine GLES2
  4. Andengine-TexturePackerExtension。

  5. [编辑] [解决]

    总堆似乎不是一个更大的问题。 我终于设法控制了总堆内存。

    我简单地为实际游戏资源创建了2个spritesheets 1,另一个用于菜单资源。我只加载当前需要的spritesheet。在加载另一个spritesheet之前我用来卸载以前的spritesheet等等。

    我希望这是一种正确的方法。

    创建2个spritesheets后,我的堆内存永远不会超过18 mb:D

    enter image description here

1 个答案:

答案 0 :(得分:1)

您的总堆容量(可能)暂时更大,因为spritesheet是一大块数据,在发送到OpenGL纹理之前必须在很短的时间内解码到堆内存中。你分配的堆几乎完全相同!所以这里没有泄漏或任何东西!

OpenGL纹理不计入您的Java堆。