анимированный спрайт не остановит анимацию - cocos2d - PullRequest
0 голосов
/ 13 сентября 2011

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

 //Grey mouse with Pompom
greyMousePomPom = [CCSprite spriteWithFile:@"pink_mice_pom_anime_01.png"];
greyMousePomPom.tag=132;
[self addChild:greyMousePomPom z:6];
greyMousePomPom.position = CGPointMake(550, 70); 

//Grey Pom Pom Mouse animation
CCAnimation *greyMousePomPomAnimate = [CCAnimation animation];
[greyMousePomPomAnimate addFrameWithFilename:@"gray_mice_pom_anime_01.png"];
[greyMousePomPomAnimate addFrameWithFilename:@"gray_mice_pom_anime_02.png"];
id greyMousePopPomAnimationAction = [CCAnimate actionWithDuration:1.3f animation:greyMousePomPomAnimate restoreOriginalFrame:NO];

repeatAnimationPomPom2 = [CCRepeatForever actionWithAction:greyMousePopPomAnimationAction];
[greyMousePomPom runAction:repeatAnimationPomPom2];

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

-(void) changePomPomMiceToSadFaceForFreeFall

{NSLog (@ "расстраивает мышей");

[self stopAllActions];


[greyMousePomPom setTexture:[[CCTextureCache sharedTextureCache] addImage:@"gray_mice_pom_anime_03.png"]]; 

}

Я знаю, что этот метод работает, потому что это NSLogging и текстуры меняются.Но почему анимация не останавливается?Я пытался удалить его по тегу и объявив действие, но безуспешно.

Я знаю, что есть много людей, которые умнее меня ... Вы можете помочь?

1 Ответ

2 голосов
/ 13 сентября 2011

То, что вы сейчас делаете, - остановите все анимации, добавленные к текущему узлу:

self

Если бы вы добавили какое-либо действие к себе, эта команда прекрасно подойдет, чтобы остановить их всех.

Вместо этого вам нужно вызвать метод stopAllActions для объекта, к которому вы добавили действия:

[greyMousePomPom stopAllActions];

НТН

...