2017-01-02 4 views
0

Это код, чтобы показать анимацию листа спрайтов, если что-то происходит в игре, анимация работает отлично, но она не останавливается после завершения последовательности кадров анимации, я сделал так много вещей, чтобы остановить анимацию, но ничего не дает мне решение, вот мой кодStop Sprite Animation в cocos2d

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

`

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

Заранее спасибо.

ответ

2

Анимация не останавливается, потому что CCRepeatForever - это действие, которое оживляет навсегда, означает непрерывность. Изменение ниже линии:

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

С

[m_gamecoinffect runAction:coineffect]; 
+0

ок спасибо за ваш повторе ,, позвольте мне проверить, если его работа или нет .. Еще раз спасибо – ICoder