11

spriteNode の回転に応じて 2 つのアニメーションを実行したいと考えています。値が負の場合はアニメーションの 1 つを実行し、正の場合は他のアニメーションを実行します。そして、なんとかそれを(一種の)行うことができましたが、問題があります。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"];

しかし、それはアクションを実行し続けます。どうすればアクションを停止できますか? ありがとうございました!

4

1 に答える 1