Stop SKAction that RepeatsForever - Sprite Kit

animation, ios, skaction, sprite-kit

Solution

The method is supposed to be called on the node which the SKAction is running on.

Change

[self removeActionForKey:@"animation1"]; 

to

[sprite removeActionForKey:@"animation1"]; 

Problem

I want to run two animations on my spriteNode depending on its rotation. If the value is negative run one of the animations, if it's positive run the other. And I managed to do that (kind of) but I have a problem. If Animation1 is running, and zRotation changes to positive, they both run because they are repeating forever. So I did this : ``` NSMutableArray *walkingTextures = [NSMutableArray arrayWithCapacity:14]; for (int i = 1; i < 15; i++) { NSString *textureName = [NSString stringWithFormat:@"character%d", i]; SKTexture *texture = [SKTexture textureWithImageNamed:textureName]; [walkingTextures addObject:texture]; } SKAction *spriteAnimation = [SKAction animateWithTextures:Textures timePerFrame:0.04]; repeatWalkAnimation = [SKAction repeatActionForever:spriteAnimation]; [sprite runAction:repeatWalkAnimation withKey:@"animation1"]; ``` and then when I want it to stop : ``` [self removeActionForKey:@"animation1"]; ``` but it keeps running the action, how can I stop the action, then? Thank you!

Original source