动画精灵不会停止动画 - cocos2d

时间:2011-09-12 21:40:21

标签: ios xcode cocos2d-iphone sprite animated

我有一个使用两个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 个答案:

答案 0 :(得分:2)

您现在正在做的是停止添加到当前节点的所有动画:

self

如果您向self添加了任何操作,则此命令可以完全停止所有操作。

相反,你需要做的是,你需要在你添加动作的对象上调用stopAllActions方法:

[greyMousePomPom stopAllActions];

HTH