1
initメソッドまたはdidMove(toView :)で、SKSceneをプログラムで設定する必要がありますか(サブノードの作成、子ノードの現在のシーンへの追加、レイアウトなど)私はSKSceneをinitメソッドまたはdidMove(toView :)でプログラムで設定する必要がありますか?
initメソッドまたはdidMove(toView :)で、SKSceneをプログラムで設定する必要がありますか(サブノードの作成、子ノードの現在のシーンへの追加、レイアウトなど)私はSKSceneをinitメソッドまたはdidMove(toView :)でプログラムで設定する必要がありますか?
はい、ノードの初期化は「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
}
}
}
の可能性のある重複[ "INIT" または "didmove" を使用していただきました!正しい方法、?](http://stackoverflow.com/questions/38567125/whats-the-correct-way -using-init-or-didmove) –
は、初期化のためのものです。しかし、シーンのinitでは、self.viewはゼロです。任意の計算のビューが必要な場合は、didMove(toView :)を使用する必要があります。 – Whirlwind