我有一个SKScene,中心有一个节点(大方块)。我有其他节点,我想将那些节点的父节点更改为mySquare而不是场景。
我尝试使用myNode.moveToParent(mySquare)
。它似乎工作,因为我可以在节点树中mySquare
下找到我的节点(for node in mySquare.children
打印我正确的节点)。我的问题是我再也看不到那些节点......
我想知道节点是否可能位置错误,所以我尝试用node.position = mySquare.convertPoint(node.position, fromNode: self)
更改它的位置。我尝试将节点的位置放在moveToParent之前的临时变量中,然后转换此位置,它不起作用。然后我试着简单地将节点定位在mySquare的中心,node.position = CGPoint(x: 0.5, y: 0.5)
是mySquare的锚点,但节点仍然消失。
我通过在带有火花的节点上放置一个SKEmitter来测试位置。火花恰好是节点在其父级是场景时的位置,这意味着在正确的位置。但节点不存在。
你对如何解决这个问题有任何想法吗?
非常感谢你的时间。
这就是我创建节点的方式
let object = SKSpriteNode(imageNamed: "myObject")
self.addChild(copy() as! SKSpriteNote)
我设置的位置与触摸相匹配(我在触摸mySquare时创建)。
mySquare从一开始就已经在场景中了(我在场景编辑器中拖了一个SKShapeNode
,这是一个正方形)。
这是我更改父
的地方func sizeOfObject(sender: UIPinchGestureRecognizer){
if (sender.state == .Began){
for nodes in nodesOnMySquare {
let pos = table.convertPoint(node.position, fromNode: self)
node.removeFromParent()
table.addChild(node)
node.position = pos
}
}
在我的for循环中,我也测试了moveToParent,就像这样
node.moveToParent(table) //Same result, the node disappear
答案 0 :(得分:0)
检查节点的zPosition。也许它隐藏在另一个元素后面。