В моем приложении у меня есть большое количество различных анимаций моего спрайта, и в более поздних версиях будет больше. Трудно использовать файл текстуры сотен кадров, поэтому я хотел бы сделать несколько tham. Итак, я написал этот код:CCSpriteBatchNode. change texture file
if (running)
{
NSArray * animations = [[physicalBody getAnimationList] objectForKey:ANIMATION_RUN];
if (!inAir)
{
currentFrame++;
if (currentFrame>=[animations count]*ANIMATION_ITERATION)
currentFrame = 0;
}
else
{
currentFrame = 2;
}
PhysicsSprite *sprite = (PhysicsSprite*)[physicalBody getSprite];
[sprite setFlipX:(moveingDirection)];
[sprite setDisplayFrame:[animations objectAtIndex:currentFrame/ANIMATION_ITERATION]];
}
else
{
NSArray * animations = [[physicalBody getAnimationList] objectForKey:ANIMATION_STAND];
currentFrame++;
if (currentFrame>=[animations count]*ANIMATION_ITERATION)
currentFrame = 0;
PhysicsSprite *sprite = (PhysicsSprite*)[physicalBody getSprite];
[sprite setFlipX:(moveingDirection)];
[sprite setDisplayFrame:[animations objectAtIndex:currentFrame/ANIMATION_ITERATION]]; //error here
}
Массива анимации был создан из различного * .png, и когда он пытается переключить тх, я получил эту ошибку:
* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSprite: setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode'
Как я могу переключаться текстурами файлы? Или может быть другое решение?
Я переключаю ccspritebatchnode, когда мне нужно использовать мой новый атлас текстуры, но это очень дорогостоящий процесс, он зависает при переключении на я получаю предупреждение о памяти в консоли. – RollRoll