在父节点之间切换 - SpriteKit

3
在我的游戏中,我有两个名为“Center”的SKNode旋转。我有一些作为“Center”(SKNode)子级的对象。我这样做是为了让这些对象围绕中心轨道运行。虽然在某些时候我想要切换到其他的SKNode - “Center2”。在这种情况下,我给一个对象命名为“Onject”,在父节点之间切换时,我需要在游戏的某些点上附加和分离它。我尝试过,在执行self.addChild(Object)后再执行Center.addChild(Object)。 我的游戏崩溃了。
如何在对象之间切换父节点?

1
你能发布一段你的代码示例吗?我认为你遇到的问题是因为你试图将两个父节点分配给一个节点。 - Chris Hutchison
2个回答

5

有一个称为move(toParent:SKNode)的方法可以完全满足您的需求,它还会自动修复您的坐标。


1
这是正确的答案,应该被接受。另一个答案只是一种变通方法。 - Nik

3
如果你先调用self.addChild(Object),然后又调用Center.addChild(Object),你的游戏将会崩溃,因为该对象将有两个父节点。你不能将该对象作为不同节点的子节点添加两次。
如果你想要更改父节点,必须首先从其原来的父节点中移除该对象,所以流程如下:
  • self.addChild(Object)(然后执行游戏逻辑)
一旦需要更改父节点,按照以下步骤进行:
  • Object.removeFromParent()
  • Center.addChild(Object)
然后你的对象就有了一个新的父节点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接