我想在我的精灵节点上运行两个动画,这取决于它的旋转。如果值为负,则运行其中一个动画,如果值为正,则运行另一个动画。我设法做到了(有点),但我有一个问题。如果 Animation1 正在运行,并且 zRotate 更改为正,则它们都会运行,因为它们永远重复。所以我这样做了:
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"];
但是它一直在运行操作,那么我该如何停止操作呢?谢谢!
该方法应该在运行 SKAction 的节点上调用。
改变
[self removeActionForKey:@"animation1"];
自
[sprite removeActionForKey:@"animation1"];