我想使用我自定义的 SKNode 子类创建一个关卡。我尝试将 SKNode 添加到场景编辑器,并使用“自定义类”选项卡提供我想要的类,但这绝对没有任何作用。该节点仍然是空的,当我运行模拟器时什么也不会显示。此外,为了确保该类确实有效,我以编程方式将它的一个实例添加到场景中,以查看它是否显示并且确实显示了。
如何通过场景编辑器将我的自定义节点添加到场景中?
这是我的自定义类代码:
class Player: SKSpriteNode {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
print("Test")
self.addChild(SKSpriteNode(imageNamed: "Player.png"))
}
}
最佳答案
你需要做两件事:
1) 设置自定义类时,您必须在类名前加上您应用的名称; My_App_Name.MyClass
例如,其中 _
代表一个空格。
2) 你的 SKNode
子类需要实现 required init?(coder aDecoder: NSCoder)
。
例如,在我名为“MyGame”的项目中:
class MyNode: SKSpriteNode {
// Set this after the node has been initaliser by init(coder:)
var someStat: Int = 0
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// To check it worked:
print("Yup, all working")
}
}
关于xcode - 在 spritekit 场景编辑器中使用自定义 SKNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230666/