Остановите SKAction, который повторяет Forever - 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"];
но он продолжает управлять действием, как я могу остановить действие, тогда? Спасибо!
1 ответ
Решение
Предполагается, что метод вызывается на узле, на котором работает SKAction.
+ Изменить
[self removeActionForKey:@"animation1"];
в
[sprite removeActionForKey:@"animation1"];