繁体   English   中英

SKSpriteNodeChild在错误的zPosition中

[英]SKSpriteNodeChild in the wrong zPosition

我将两个SKSpriteNodes作为子级添加到另一个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平面中从后到前的精灵顺序为

  • parentNode
  • child1
  • 的child2

有时,预期的

  • child1
  • parentNode
  • 的child2

当子节点低于parentNode时,zPosition属性是否被否决? 有没有人遇到这样的错误或知道解决方法?

skView.ignoresSiblingOrder = trueskView.ignoresSiblingOrder = true当我将其设置为false ,每次都会得到第一个行为(parentNode,child1,child2)。

我建议添加一个充当容器的节点,然后添加其他三个节点作为该节点的子节点。 这样,您的三个节点就可以充当兄弟姐妹,如果需要,可以使用它们的zPosition重新排列它们。

该问题已解决。 当我尝试了几件事时,我不能100%确定是什么解决了它。 我将ignoresSiblingOrder设置为false,然后又返回true,将最上面出现的childNode的定义移动到与父代相同的函数中,最后(我怀疑这是修复的原因),移动了addChild并设置zPosition(在我的项目中,顺序最初是child1.zPositionparentNode.addChild ;更改这两个顺序可能解决了问题,因为我怀疑随后的同级顺序会混淆zPosition)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM