Ios 如何在SpriteKit中更改动作

Ios 如何在SpriteKit中更改动作,ios,sprite-kit,Ios,Sprite Kit,目前,我的角色需要执行以下操作: SKAction* action1 = [SKAction repeatActionForever:[SKAction animateWithTextures:textureArray timePerFrame:0.2]]; [_character runAction:action1]; 然后在游戏中,在一定条件下,我需要改变角色的纹理和动作: SKAction* action2 = [SKAction repeatActionForever:[SKAct

目前,我的角色需要执行以下操作:

SKAction* action1 = [SKAction repeatActionForever:[SKAction animateWithTextures:textureArray timePerFrame:0.2]];
[_character runAction:action1];
然后在游戏中,在一定条件下,我需要改变角色的纹理和动作:

  SKAction* action2 = [SKAction repeatActionForever:[SKAction animateWithTextures:textureArray2 timePerFrame:0.2]];
        SKAction* changeTexture2 = [SKAction setTexture:[SKTexture textureWithImageNamed:@"newtexture"]];
        [_character runAction:[SKAction sequence:@[changeTexture2,action2]]];
我可以看到角色有旧的纹理和动作1,然后在条件满足时,他改变了纹理,但没有动作显示。
我试着删除第一个动作,和许多不同的变化,但我不能得到他改变的外观和行动。我真的不知道他们是如何改变游戏中的动作的?我试着用谷歌搜索,但我真的找不到合适的地方。。。 谢谢大家!

尝试以下更改:

  SKAction *action1 = ...
  [_character runAction:action1 withKey:@"action1"];
之后:

  [_character removeActionForKey:@"action1"];
  [_character setTexture:[SKTexture textureWithImageNamed:@"newtexture"]];
  SKAction *action2 = [SKAction animateWithTextures:textureArray2 
                                       timePerFrame:0.2]];
  [_character runAction:[SKAction repeatActionForever:action2]];

如何使用纹理设置一个
SKSpriteNode
的动画并同时设置它的纹理?是的,如果之后不需要更改它的纹理,看起来我可以正常地这样做。纹理是从集合中的一个纹理获取的,用于创建动画。在设置action2和ChangeTexture2之前尝试使用[\u character removeAllActions],我尝试过,但没有效果。我真的不知道他们在正常游戏中如何更改动作?谷歌帮不了什么忙…同样的结果兄弟,它改变了纹理,但没有改变动作。更改纹理后没有任何操作。@user1314404您确定textureArray2不是nil吗?是的,我用debug检查过,它包含3个对象(即创建操作的3个对象,更正一个)!我真的不知道他们在普通游戏中是如何改变动作的?@user1314404尝试一下这段代码,但删除了纹理变化的线条