在 spritekit 场景编辑器中使用自定义 SKNodes
Using custom SKNodes in spritekit scene editor
我想使用 SKNode 的自定义子class创建关卡。我尝试将 SKNode 添加到场景编辑器并使用 "Custom Class" 选项卡给出我想要的 class 但这绝对没有任何作用。该节点仍然是空的,当我 运行 模拟器时什么也不会显示。此外,为了确保 class 确实有效,我以编程方式将它的一个实例添加到场景中,以查看它是否显示并且确实如此。
如何通过场景编辑器将自定义节点添加到场景中?
这是我的自定义 class 代码:
class Player: SKSpriteNode {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
print("Test")
self.addChild(SKSpriteNode(imageNamed: "Player.png"))
}
}
您需要做两件事:
1) 设置自定义 Class 时,您必须在 class 名称前加上您应用的名称;例如 My_App_Name.MyClass
,其中 _
表示 space。
2) 您的 SKNode
subclass 需要实施 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 8 中遇到了同样的问题。
这听起来很愚蠢,但要应用自定义 class,我必须在 运行.
之前 保存 .sks 文件
.sks 文件不会自动保存,这与文本文件或故事板不同。
我想使用 SKNode 的自定义子class创建关卡。我尝试将 SKNode 添加到场景编辑器并使用 "Custom Class" 选项卡给出我想要的 class 但这绝对没有任何作用。该节点仍然是空的,当我 运行 模拟器时什么也不会显示。此外,为了确保 class 确实有效,我以编程方式将它的一个实例添加到场景中,以查看它是否显示并且确实如此。
如何通过场景编辑器将自定义节点添加到场景中?
这是我的自定义 class 代码:
class Player: SKSpriteNode {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
print("Test")
self.addChild(SKSpriteNode(imageNamed: "Player.png"))
}
}
您需要做两件事:
1) 设置自定义 Class 时,您必须在 class 名称前加上您应用的名称;例如 My_App_Name.MyClass
,其中 _
表示 space。
2) 您的 SKNode
subclass 需要实施 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 8 中遇到了同样的问题。 这听起来很愚蠢,但要应用自定义 class,我必须在 运行.
之前 保存 .sks 文件.sks 文件不会自动保存,这与文本文件或故事板不同。