Каков эффективный способ переключения CCSpriteBatchNode?

Мне нужно переключить атлас текстуры из узла CCSpriteBatch. Подход, который я выбрал, заключается в том, что после того, как играбельный персонаж достигает определенной оси X (700), игра меняет ее.

и он работает нормально визуально, но проблема в том, что он зависает на 2-3 секунды при смене экрана, и я получаю предупреждение о памяти в консоли.

Я не думаю, что я единственный, кто когда-либо делал это, что заставляет меня задуматься, как правильно (самый легкий) способ переключения CCSpriteBatchNode.

Смотрите ниже текущий код переключения:

if(mainCharacter.x > 700)
{
    //NSLog(@"switch!");

    float oldHeroX, oldHeroY;

    oldHeroX = mainCharacter.x;
    oldHeroY = mainCharacter.y;

    [_myBatchNode removeChild:mainCharacter];
    [[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFramesFromFile:texturePList1];
    [self removeChild:_myBatchNode];



    [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:texturePList2];
    _myBatchNode = [CCSpriteBatchNode batchNodeWithFile:texturePNG2];
    [_myBatchNode.texture setAliasTexParameters];
    [self addChild: _myBatchNode z:-6];

    //this is just a method that starts the playable character sprite and add to batch node and layer
    [self startCharacter:oldHeroX :oldHeroY];
}

Спасибо

1 ответ

Я стараюсь избегать загрузки "на лету", по большому счету: т.е. я предварительно загружаю все свои текстуры перед началом сцены (или вырезанной сцены), обычно во время перехода. Когда завис, и я должен загрузить на лету (потому что объем памяти предварительно загруженных текстур слишком высок), я буду использовать текстуры pvr (без сжатия), жертвуя размером пакета, чтобы получить скорость загрузки и использование памяти во время загрузки. YMMV, в зависимости от размера отдельных текстур, вам нужно переключаться "на лету".

Кроме того, если вам нужен только спрайт или анимация, не используйте пакетный узел. Ничего не получилось, но очистка и свертывание обходятся дорого.

Другие вопросы по тегам