Подтвердить что ты не робот

Остановите SKAction, что RepeatsForever - Sprite Kit

Я хочу запустить две анимации на моем spriteNode в зависимости от ее вращения. Если значение отрицательно, запустите одну из анимаций, если она положительная, запустите другую. И мне это удалось (вроде), но у меня проблема. Если Animation1 запущен, а zRotation изменяется на положительный, они оба запускаются, потому что они повторяются навсегда. Поэтому я сделал это:

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

а затем, когда я хочу, чтобы он остановился:

    [self removeActionForKey:@"animation1"];

но он продолжает запускать действие, как я могу остановить действие? Спасибо!

4b9b3361

Ответ 1

Предполагается, что метод должен быть вызван в node, который работает SKAction.

Измените

[self removeActionForKey:@"animation1"]; 

to

[sprite removeActionForKey:@"animation1"];