我在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
属性。