我在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键进行拖动?
答案 0 :(得分:0)
如果您已将精灵命名为'line1LightLeft',那么这行代码为:
line1LightLeft = self.childNode(withName: "arrowLeftOff") as! SKSpriteNode
应该阅读
line1LightLeft = self.childNode(withName: "line1LightLeft") as! SKSpriteNode
编辑:
为了澄清,withName
函数的childNode
参数引用了所需节点的.name
属性,而不是.texture
属性。