Анимация спрайтов в Cocos2d - PullRequest
       23

Анимация спрайтов в Cocos2d

2 голосов
/ 14 апреля 2010

Как мне избежать ненужного освобождения? Я использую этот код:

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 Ответ

1 голос
/ 18 августа 2011

Я предполагаю, что у вас есть CCDEBUG до 2. Снизьте его до 1. Это то, что вы видите в CCLOGINFO. Тем не менее, используйте инструменты профилирования XCode, чтобы видеть, истощается ли память. Я держу пари, что нет. Вы просто видите вещи, которые еще не понимаете.

...