ios – 停止SKAction,RepeatsForever – Sprite Kit

前端之家收集整理的这篇文章主要介绍了ios – 停止SKAction,RepeatsForever – Sprite Kit前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的spriteNode上运行两个动画,具体取决于它的旋转.如果值为负,则运行其中一个动画,如果它是正的,则运行另一个.我设法做到这一点(但是我有一个问题).如果Animation1正在运行,并且zRotation更改为正,则它们都会运行,因为它们将永远重复.所以我这样做:
  1. NSMutableArray *walkingTextures = [NSMutableArray arrayWithCapacity:14];
  2.  
  3.  
  4. for (int i = 1; i < 15; i++) {
  5. NSString *textureName =
  6. [NSString stringWithFormat:@"character%d",i];
  7. SKTexture *texture =
  8. [SKTexture textureWithImageNamed:textureName];
  9. [walkingTextures addObject:texture];
  10. }
  11.  
  12. SKAction *spriteAnimation = [SKAction animateWithTextures:Textures timePerFrame:0.04];
  13. repeatWalkAnimation = [SKAction repeatActionForever:spriteAnimation];
  14. [sprite runAction:repeatWalkAnimation withKey:@"animation1"];

然后当我想要停止:

  1. [self removeActionForKey:@"animation1"];

但是它一直在运行,那么我该怎么停止呢?谢谢!

解决方法

方法应该在运行SKAction的节点上调用.

更改

  1. [self removeActionForKey:@"animation1"];

  1. [sprite removeActionForKey:@"animation1"];

猜你在找的iOS相关文章