从 GameScene.swift 错误中调用 GameScene.sks 中的节点
Calling a node in GameScene.sks from GameScene.swift error
我在 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)
当然我试过了Google但是我找到的答案并没有改变它甚至给出了更多的错误。有人看到错误了吗?
Grrrr,为什么我不能像在单视图应用程序中那样按住 ctrl-click-drag?
如果您将精灵命名为 'line1LightLeft' 那么这行代码:
line1LightLeft = self.childNode(withName: "arrowLeftOff") as! SKSpriteNode
应该阅读
line1LightLeft = self.childNode(withName: "line1LightLeft") as! SKSpriteNode
编辑:
为澄清起见,childNode
函数的withName
参数指的是所需节点的.name
属性,而不是.texture
属性.
我在 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)
当然我试过了Google但是我找到的答案并没有改变它甚至给出了更多的错误。有人看到错误了吗?
Grrrr,为什么我不能像在单视图应用程序中那样按住 ctrl-click-drag?
如果您将精灵命名为 'line1LightLeft' 那么这行代码:
line1LightLeft = self.childNode(withName: "arrowLeftOff") as! SKSpriteNode
应该阅读
line1LightLeft = self.childNode(withName: "line1LightLeft") as! SKSpriteNode
编辑:
为澄清起见,childNode
函数的withName
参数指的是所需节点的.name
属性,而不是.texture
属性.