Задержка анимации Cocos2d через некоторое время (минуты) - PullRequest
0 голосов
/ 22 февраля 2012

У меня проблема с анимацией cocos2d, при первом запуске анимации, которая работает отлично, через некоторое время скорость анимации замедляется

Я использовал приведенный ниже код

-(void)animateImages:(NSString *)animationName startImageName:(NSString*)sImage  individualImageName:(NSString *)imgName withDelay:(CGFloat)delay startFrame:(NSInteger)sFrame endFrame:(NSInteger)eFrame {

isAnimating=YES;


[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:[NSString stringWithFormat:@"%@.plist",animationName]];        

// Create a sprite sheet with the March images
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:[NSString stringWithFormat:@"%@.png",animationName]];



[self addChild:spriteSheet z:0];

// Load up the frames of our animation
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for(int i = sFrame; i <= eFrame; i=i+2) {
    [walkAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"%@ %d.jpg",imgName,i]]];//@"stand march %d.jpg"
}


NSLog(@"After NSMutableArray");


    CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:delay];
//    CCAction *standByAtion =[CCSequence actions:                          
//                             [CCRepeat actionWithAction:[CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:YES] times:1],[CCCallFunc actionWithTarget:self selector:@selector(callAgain:)],nil];

CCAction *standByAtion =[CCSequence actions:                          
                         [CCRepeat actionWithAction:[CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO] times:1],[CCCallFunc actionWithTarget:self selector:@selector(setAnimatingToFalseAfterAnimation:)],nil];


 [walkAnimFrames removeAllObjects];
 walkAnimFrames=nil;

CGSize winSize = [[CCDirector sharedDirector] winSize];
CCSprite *images = [CCSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"%@",sImage]];//@"stand march 101.jpg"

images.position=ccp(winSize.width/2,winSize.height/2);
images.scaleX=1.6;
images.scaleY=1.59;




[spriteSheet addChild:images];

[images runAction:standByAtion];

if (!isInInitMethod && isTalking==NO) {
    NSString *audioName=[NSString stringWithFormat:@"Jump.caf"];
    [self playSoundEffectNamed:audioName];
}
}

1 Ответ

0 голосов
/ 22 февраля 2012

Если в цикле выполнения не выполняется полный цикл, то автоматически освобожденные объекты не освобождаются.Используйте инструменты и отслеживайте свои ассигнования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...