ios - 如何改变 SpriteKit 中的 Action

标签 ios sprite-kit

目前我的角色有这个 Action :

SKAction* action1 = [SKAction repeatActionForever:[SKAction animateWithTextures:textureArray timePerFrame:0.2]];
[_character runAction:action1];

然后在游戏过程中,在一个条件下,我需要改变角色的纹理以及他的 Action :

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

我可以看到具有旧纹理和 Action 1 的角色,然后在满足条件的情况下,他改变了纹理,但没有 Action 显示。 我尝试删除第一个 Action ,并进行了许多不同的更改,但我无法让他同时更改外观和 Action 。我真的不知道他们如何改变游戏中的 Action ?我试着谷歌,但我真的找不到任何合适的地方...... 谢谢!

最佳答案

尝试进行以下更改:

  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]];

关于ios - 如何改变 SpriteKit 中的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22656835/

相关文章:

ios - 使用带有 NavigationView 的 ScrollView 我得到空白的灰色空间

ios - UITableViewCell设置突出显示:(BOOL)highlighted is always false

swift - 即使打开恢复,SkSpritenode 正常纹理也不会恢复?

ios - Swift SpriteKit 基于分数更改背景图像

ios - 为 SKSpriteNode 的子类加载物理体

ios - 带图像的 SKSpriteNode 不会着色

ios - 旋转到横向时自动调整 UINavigationBar 的大小

iPad 上的 JavaScript 弹出窗口

ios - 是否可以在未经 iOS 许可的情况下获取用户大致位置?

swift - 如何在保持重力的同时保持 spritekit 节点中的能量恒定