从GameScene.swift错误中调用GameScene.sks中的节点

时间:2017-05-09 08:44:47

标签: xcode swift3 sprite-kit skspritenode

我在GameScene.sks中放置了一个Color Sprite并将其命名为line1LightLeft,并为其指定了名为arrowLeftOff的纹理。

现在我希望在GameScene.swift中更改图像。所以我首先要将.sks中的节点连接到.swift。

var line1LightLeft = SKSpriteNode()

override func didMove(to view: SKView) {

    line1LightLeft = self.childNode(withName: "arrowLeftOff") as! SKSpriteNode

}

我没有收到任何错误,但是当我构建并运行游戏时,我收到了消息: 致命错误:意外地发现nil展开一个可选值

其中带有self.childNode的代码行变为红色,它表示: 线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

当然我已经尝试了谷歌,但我找到的答案不会改变,甚至会出现更多错误。有没有人看到错误?

Grrrr,为什么我不能像在单个视图应用程序中那样按住Ctrl键进行拖动?

1 个答案:

答案 0 :(得分:0)

如果您已将精灵命名为'line1LightLeft',那么这行代码为:

line1LightLeft = self.childNode(withName: "arrowLeftOff") as! SKSpriteNode

应该阅读

line1LightLeft = self.childNode(withName: "line1LightLeft") as! SKSpriteNode

编辑:

为了澄清,withName函数的childNode参数引用了所需节点的.name属性,而不是.texture属性。