【问题标题】:Releasing Cocos2d texture atlases发布 Cocos2d 纹理图集
【发布时间】:2011-09-01 09:59:27
【问题描述】:

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

我有以下代码

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

我如何在最后阶段发布这 2 个?

【问题讨论】:

    标签: objective-c cocos2d-iphone


    【解决方案1】:
    [[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:@"Blue.plist"]
    

    【讨论】:

    • 嗯,我无法编辑掉一个无关的字符,所以请注意,在该代码的末尾附近有一个完全不需要的 >。
    【解决方案2】:

    如果不是全部的话,大多数 CCNode 派生对象都是自动释放的。只要你使用方便的方法而不是 alloc init。

    例如

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

    一旦您的 CCLayer 删除作为子节点的批处理节点,它应该释放该对象,除非有某种东西链接到它,也许子节点没有被删除(但他们应该这样做)。

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

        [[CCDirector sharedDirector] purgeCachedData];
    

    清除缓存的数据也会删除上面问题中提到的缓存的精灵帧。

    【讨论】:

      猜你喜欢
      • 2013-04-24
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多