2 つの SKSpriteNode を子として別の SKSpriteNode に追加しています。コードは次のようになります。
let parentNode = SKSpriteNode(imageNamed: "ParentImage")
parentNode.position = CGPointMake(0,0)
parentNode.zPosition = 0
let child1 = SKSpriteNode(imageNamed: "ChildImage1")
child1.position = CGPointMake(0,0)
parentNode.addChild(child1)
child1.zPosition = -10
let child2 = SKSpriteNode(imageNamed: "ChildImage2")
child2.position = CGPointMake(0,0)
parentNode.addChild(child2)
child2.zPosition = 10
シーンに parentNode を追加すると、z 平面内のスプライトの順序は後ろから前になります。
- 親ノード
- 子1
- 子2
そして時々、期待される
- 子1
- 親ノード
- 子2
子がparentNodeの下にある場合、zPositionプロパティは上書きされますか? 誰かがこのようなバグに遭遇したか、修正を知っていますか?
GameViewController で、skView.ignoresSiblingOrder = true
に設定するとfalse
、毎回最初の動作 (parentNode、child1、child2) が取得されます。