Animating sprites in Cocos2d
How do I avoid unneccesary deallocation? I'm 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 actionWithAnimatio开发者_开发技巧n:animation]];
[spaceShipSprite runAction:action];
When the animaton is running (granted - its an ugly one), I get this 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 unneccesary that the same SpriteFrame gets dealloc'ed 24 times per second - how do I avoid that?
I'm assuming you have CCDEBUG turned up to 2. Put it back down to 1. That's CCLOGINFO stuff you're seeing. Still, use Xcode's profiling tools to see if memory is being drained away. I'm betting not. You're just seeing things you don't understand yet.
精彩评论