我应该在init方法或didMove(toView :)中以编程方式设置SKScene(即创建子节点,将子节点添加到当前场景,布局等)?
答案 0 :(得分:1)
是的,节点的初始化应该放在" init"中。这是视图的初始设置发生的地方,这涉及创建SKNodes
并将此节点设置到其位置。如果您要将任何其他属性应用于节点,则可以在sceneDidMove中进行一次设置以进行查看。
例如
class GameScene : SKScene {
var player : SKSpriteNode?
override init(size: CGSize) {
let playerSize = CGSize(width: 30, height: 60)
self.player = SKSpriteNode((texture: nil, color: .cyan, size: playerSize)
self.addChild(player)
player.position.x = size.width / 2
player.position.y = size.height / 2
player.zPosition = 99
super.init(size: size)
// you can only call functions after super.init
}
override func sceneDidLoad() {
//setup Code
}
}
}