如何从sks文件加载节点,然后应用在Scene Editor中定义的操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从sks文件加载节点,然后应用在Scene Editor中定义的操作相关的知识,希望对你有一定的参考价值。

我有两个sks文件,一个带有节点,另一个带有在Scene Editor中创建的动作。我想加载节点并将它们添加到另一个节点,然后对它们应用操作,例如:

override func sceneDidLoad() {

    let heroScene = SKScene(fileNamed: "Hero")
    let head = heroScene?.childNode(withName: "HeroHead") as! SKSpriteNode
    let testAction = SKAction(named: "HeroTestAction") as! SKAction
    let loop = SKAction.repeatForever(testAction)
    let hero = SKSpriteNode(color: SKColor.white.withAlphaComponent(0) , size: CGSize(width: 50, height: 250))
    let body = SKSpriteNode(color: SKColor.blue, size: CGSize(width: 50, height: 50))

    head.removeFromParent()
    hero.addChild(head)
    hero.addChild(body)
    self.addChild(hero)

    head.run(loop)
    body.run(loop)

}

但行动不适用于head。如果我将循环应用于bodyhero它的工作原理。

我做错了什么?谢谢!

enter image description here

enter image description here

更新:当我第一次运行示例时,操作不起作用,但如果关闭应用程序并再次运行它是有效的。

enter image description here

答案

我想说有一个有趣的“功能”,当你抓住一个参考精灵,就像它作为isPaused = true;进来

尝试添加此功能

head.isPaused = false;

我相信在从另一个场景中抓取一个精灵之前我遇到了类似的问题。

以上是关于如何从sks文件加载节点,然后应用在Scene Editor中定义的操作的主要内容,如果未能解决你的问题,请参考以下文章

如何从嵌入工作区的 Swift Playground 加载 .sks 文件?

将发射器节点添加到 sks 文件并使用它 - XCode 6.0 + swift

有没有办法在 .sks 文件中布局我的整个关卡,但只加载当前视图中的内容?

Xcode 9:SKEditorReference不允许动画?

jTopo如何实现不可拖拽

试图建立平台,我可以从下面跳过,但降落在上面。难以微调逻辑