Анимация спрайтов в 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];

Когда аниматон работает (правда, он уродливый), я получаю это в консоли:

14.04.2010 13:40:16.311 Booster2K10Beta[521:20b] cocos2d: удаление CCSpriteFrame = 00EBA620 | TextureName=4, прямоугольник = (1.00,32.00,32.00,32.00)

14.04.2010 13:40:16.411 Booster2K10Beta[521:20b] cocos2d: удаление CCSpriteFrame = 00EBA620 | TextureName=4, прямоугольник = (1.00,32.00,32.00,32.00)

14.04.2010 13:40:16.496 Booster2K10Beta[521:20b] cocos2d: освобождение CCSpriteFrame = 00EBA620 | TextureName=4, прямоугольник = (1.00,32.00,32.00,32.00)

Кажется ненужным, что один и тот же SpriteFrame освобождается 24 раза в секунду - как мне этого избежать?


person CBudtz    schedule 14.04.2010    source источник


Ответы (1)


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

person Community    schedule 17.08.2011