如何在SpriteKit中更改操作

时间:2014-03-26 09:38:19

标签: ios sprite-kit

目前我的角色正在采取行动:

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的角色,然后在满足条件时,他改变了纹理,但没有动作显示。 我尝试删除第一个动作,以及许多不同的改变,但我不能让他改变外观和动作。我真的不知道他们如何改变游戏中的动作?我试着谷歌,但我真的找不到合适的地方...... 谢谢!

1 个答案:

答案 0 :(得分: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]];