这是在游戏中发生某些事情时显示 Sprite 表动画的代码,动画效果完美但在动画帧序列完成后它不会停止,我做了很多事情来停止动画,但没有任何东西给我解决方案,这是我的代码
if(m_bEffectChangeColor){
`
m_gamecoinffect = [CCSprite spriteWithSpriteFrameName:@"powerup0001"];
[self addChild:m_gamecoinffect z:3];
CCAnimate *coineffect = [CCAnimate actionWithSpriteSequence:@"powerup%04d" numFrames:30 delay:0.1f restoreOriginalFrame:NO];
[m_gamecoinffect runAction:[CCRepeatForever actionWithAction:coineffect]];
m_gamecoinffect.position = ptEffectPos;
CCCallBlock *block = [CCCallBlock actionWithBlock:^{
//[m_gamecoinffect stopAllActions];
[self removeChild:m_gamecoinffect cleanup:YES];
}];
CCDelayTime *time = [CCDelayTime actionWithDuration:1];
[m_gamecoinffect runAction:[CCSequence actions:time, block, nil]];
`
上面的代码我尝试添加计时器和我知道的一切,但没有任何效果,我想停止动画并从图层中删除那些 Sprite 。
提前致谢。
最佳答案
动画不会停止,因为 CCRepeatForever
是永远动画的 Action ,意味着连续不断。更改以下行:
[m_gamecoinffect runAction:[CCRepeatForever actionWithAction:coineffect]];
与
[m_gamecoinffect runAction:coineffect];
关于ios - 在 cocos2d 中停止 Sprite 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428509/