释放Cocos2d纹理地图集

时间:2011-09-01 09:59:28

标签: objective-c cocos2d-iphone

如何使用cocos2d发布纹理图集?

我有以下代码

NSString *blue= = @"Blue.plist";
CCSpriteBatchNode *blueBatchNode = [CCSpriteBatchNode batchNodeWithFile:@"Blue.png"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:blue];
[self.parentScene addChild:blueBatchNode];

如何在光栅阶段释放这两个?

2 个答案:

答案 0 :(得分:5)

[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:@"Blue.plist"]

答案 1 :(得分:0)

大多数(如果不是所有)CCNode派生对象都是自动释放的。只要您使用便捷方法而不是分配init。

e.g。

CCSprite *sprite = [CCSprite spriteWithFrameName:@"blahblah"];

一旦你的CCLayer作为一个孩子移除了batchnode,它应该释放该对象,除非有某些东西链接到它,也许是没有被移除的孩子(但他们应该这样做)。

当发生这种情况时,如果没有将其删除,您还可以使用purgecacheddata清除纹理。

    [[CCDirector sharedDirector] purgeCachedData];

清除缓存数据还会删除缓存的spriteframe,如上面的问题中所述。