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



我在GameScene.sks中放置了一个颜色精灵,并将其命名为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-单击-拖动?

如果你把精灵命名为'line1LightLeft',那么这行代码:

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

应改为

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

编辑:

为澄清起见,childNode函数的 withName 参数是指所需节点的.name属性,而不是.texture属性。

最新更新