Animating sprites in Cocos2d

How to avoid unnecessary release? I am running this code:

CCSpriteFrameCache * cache = [CCSpriteFrameCache sharedSpriteFrameCache];
    [cache addSpriteFramesWithFile:@"boosttexture.plist"];

    CCAnimation * animation = [[CCAnimation alloc] initWithName:@"boosting" delay:1/24.0f];

    [animation addFrame:[cache spriteFrameByName:@"ship.png"]];
    [animation addFrame:[cache spriteFrameByName:@"ship_boost_l_r.png"]];

    id action = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:animation]];
    [spaceShipSprite runAction:action];

      

When the animator is running (provided - its ugly), I get it in the console:

2010-04-14 13: 40: 16.311 Booster2K10Beta [521: 20b] cocos2d: deallocing CCSpriteFrame = 00EBA620 | TextureName = 4, Rect = (1.00,32.00,32.00,32.00)

2010-04-14 13: 40: 16.411 Booster2K10Beta [521: 20b] cocos2d: deallocing CCSpriteFrame = 00EBA620 | TextureName = 4, Rect = (1.00,32.00,32.00,32.00)

2010-04-14 13: 40: 16.496 Booster2K10Beta [521: 20b] cocos2d: deallocing CCSpriteFrame = 00EBA620 | TextureName = 4, Rect = (1.00,32.00,32.00,32.00)

It seems unnecessary that the same SpriteFrame gets dealloc'ed 24 times per second - how to avoid this?

+2


a source to share


1 answer


I assume that you have CCDEBUG up to 2. Put it back on 1. This CCLOGINFO that you see. However, use Xcode's profiling tools to see if memory is removed. I'm placing bets. You just see things that you haven't figured out yet.



+1


a source







All Articles