【发布时间】:2012-02-01 03:14:13
【问题描述】:
我正在使用 cocos2d 并且有一个 1024x1024 的 spritesheet。
我以 RGBA4444 格式加载纹理,它消耗 2MB 标记为“gfxAllocateTextureLevel”。
然后,当我从 spritesheet 创建 CCSprites 时,它会立即消耗额外的 4MB 内存,标记为 glsmLoadTextureLevelBuffer。
总共有 6MB,相对于我的应用而言,这相当多。这是预期的吗?是否需要为每个 spritesheet 甚至 CCSpriteBatchNode 创建这样的缓冲区?谢谢。
【问题讨论】:
-
你是如何创建 CCSprites 的?你在使用 initWithSpriteSheet 吗?
-
我用 [CCSprite spriteWithSpriteFrameName@"spr.png"] 创建了一个精灵 我加载了精灵表本身: [[CCTextureCache sharedTextureCache] addImageAsync:@"x.png" target:self 选择器:@selector (gameSpritesLoaded:)];然后在创建批处理节点之前将它们添加到缓存中: [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"x.plist"];
标签: iphone xcode cocos2d-iphone opengl-es-2.0