2017-01-02 4 views
0

Dies ist der Code, um Sprite Sheet Animation anzuzeigen, wenn etwas im Spiel passiert, Animation funktioniert perfekt, aber es stoppt nicht, nachdem die Animations Frames abgeschlossen sind, ich hatte so viele Dinge getan, um die Animation zu stoppen, aber nichts gibt mir Lösung, hier ist mein CodeStop Sprite Animation in 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]]; 

`

Above Code habe ich versucht, Timer hinzuzufügen und alles, was ich weiß, aber nichts, was ich s arbeiten ,,, ich möchte die Animation stoppen und diese Sprite aus der Schicht entfernen.

Vielen Dank im Voraus.

Antwort

2

Die Animation hört nicht auf, denn die CCRepeatForever ist die Aktion, die für immer bedeutet animiert kontinuierlich. Ändern Sie unter der Zeile:

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

Mit

[m_gamecoinffect runAction:coineffect]; 
+0

ok Dank für Ihre Wiederholung ,, Lassen Sie mich überprüfen, ob seine Arbeit oder nicht .. Sie einmal danken wieder – ICoder