如何复制带孩子的SKNodes

时间:2017-07-10 14:57:57

标签: ios swift sprite-kit gameplay-kit

如何复制包含两个或更多SKTileMapNode的{​​{1}}或SKNode

结构是:

  • BackgroundNode(空)
    • SKTileMapNode
    • SKTileMapNode

我很想在我的场景中找到以下内容:

SKTileMapNode

这会导致一些不可见的东西。复制节点但我仍然看不到任何内容,并且SKTileMap的值未正确复制到副本。例如,不应用tileSize。

如何设法获取guard let background = self.childNode(withName: "BackgroundNode") else { return } background0 = background background1 = background.copy() self.addChild(background1) 的副本?

1 个答案:

答案 0 :(得分:0)

您应该使用自己的实现重写copy(with:)类的SKNode方法,以便能够与SKNode复制其子级。 但是您可以简单地执行以下操作:

guard let background = self.childNode(withName: "BackgroundNode") else {
    return
}

let backgroundCopy = SKNode()

for child in background.children {
    backgroundCopy.addChild(child)
}
addChild(backgroundCopy)