[英]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时,zPosition属性是否被否决? 有没有人遇到这样的错误或知道解决方法?
在skView.ignoresSiblingOrder = true
, skView.ignoresSiblingOrder = true
当我将其设置为false
,每次都会得到第一个行为(parentNode,child1,child2)。
我建议添加一个充当容器的节点,然后添加其他三个节点作为该节点的子节点。 这样,您的三个节点就可以充当兄弟姐妹,如果需要,可以使用它们的zPosition
重新排列它们。
该问题已解决。 当我尝试了几件事时,我不能100%确定是什么解决了它。 我将ignoresSiblingOrder设置为false,然后又返回true,将最上面出现的childNode的定义移动到与父代相同的函数中,最后(我怀疑这是修复的原因),移动了addChild并设置zPosition(在我的项目中,顺序最初是child1.zPosition
, parentNode.addChild
;更改这两个顺序可能解决了问题,因为我怀疑随后的同级顺序会混淆zPosition)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.