在 cocos2d 中停止 Sprite 动画

Posted

技术标签:

【中文标题】在 cocos2d 中停止 Sprite 动画【英文标题】:Stop Sprite Animation in cocos2d 【发布时间】:2017-05-16 15:50:04 【问题描述】:

如果游戏中发生某些事情,这是显示精灵表动画的代码,动画效果很好,但在动画帧序列完成后它并没有停止,我做了很多事情来停止动画,但没有给我解决方案,这是我的代码

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]];

`

上面的代码我尝试添加计时器和我知道的所有内容,但没有任何效果,我想停止动画并从图层中删除那些精灵。

提前致谢。

【问题讨论】:

【参考方案1】:

动画不会停止,因为CCRepeatForever 是永远动画的动作,意味着持续不断。更改以下行:

[m_gamecoinffect runAction:[CCRepeatForever actionWithAction:coineffect]];

[m_gamecoinffect runAction:coineffect];

【讨论】:

好的,谢谢你的重播,让我看看它是否有效..再次感谢你

以上是关于在 cocos2d 中停止 Sprite 动画的主要内容,如果未能解决你的问题,请参考以下文章

在 Cocos2D 和 Spritebuilder 中为 Sprite 设置动画

Cocos2D Sprite 动画 - 仅在屏幕上滑动的 Sprite

如何在 cocos2d 中一个接一个地排列精灵的动画?

cocos2d 动画从后台返回时停止

面向基于英特尔® 架构的 Android* 的 CoCos2D

iPhone 上的 Cocos2d:使用在单独的类文件中定义的 Sprite