2010-04-14 142 views
2

如何避免不必要的重新分配?我運行這段代碼:當animaton運行(當然 - 它難看)Cocos2d中的動畫製作精靈

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]; 

,我得到這個在控制檯:

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

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

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

似乎不必要的是同一個SpriteFrame每秒會釋放24次 - 我該如何避免這種情況?

回答

1

我假設你有CCDEBUG變爲2.把它放回1.這就是你看到的CCLOGINFO的東西。儘管如此,仍然使用Xcode的分析工具來查看內存是否正在流失。我打賭不是。你只是看到你還不明白的東西。