Я создаю приложение, которое имеет около 15 различных анимаций.Некоторые анимации воспроизводятся при нажатии кнопок, а некоторые - на определенное событие.Поскольку я новичок в cocos2d, я просто не могу понять, как инициализировать эти анимации.У меня есть отдельные листы спрайтов для каждой анимации.Что я сделал, так это создал вспомогательный класс, имеющий в качестве члена данных объект CCSprite.И в функции инициализации я поместил весь код для создания анимации.Но как только вызывается функция init, я получаю предупреждение о памяти.
Я даже пытался инициализировать анимации только при отправке запроса на воспроизведение анимации, но я все еще получаю предупреждение о памяти.Кроме того, если я сделаю это, анимация не будет воспроизводиться, пока не будет загружен весь спрайт.
Пожалуйста, проверьте следующий код для справки
- (void)initEntryAnimation
{
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"entry.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"entry.png"];
[self.sardarSprite addChild:spriteSheet];
NSMutableArray *entryFrames = [NSMutableArray array];
for(int i = 0; i < 77; i++) {
if([[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
[NSString stringWithFormat:@"enter in scene%04i.png", i+1]])
[entryFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
[NSString stringWithFormat:@"enter in scene%04i.png", i+1]]];
}
self.entryAnimation = [CCAnimation animationWithFrames:entryFrames delay:0.05f];
}
- (void)playEntryAnimation
{
[CCSpriteFrameCache purgeSharedSpriteFrameCache];
[self.sardarSprite runAction:[CCAnimate actionWithAnimation:self.entryAnimation restoreOriginalFrame:NO]];
}
Я создал аналогичные функции для всех 15анимации.Я вызываю все функции инициализации одну за другой.И функции воспроизведения вызываются всякий раз, когда отправляется запрос на анимацию.
Мне очень нужен совет специалиста.Любая помощь будет принята с благодарностью.