【问题标题】:How to copy an SKNodes with children如何复制带有子节点的 SKNodes
【发布时间】:2017-07-10 14:57:57
【问题描述】:

如何复制包含两个或多个SKTileMapNodeSKTileMapNodeSKNode

结构是:

  • BackgroundNode(空)
    • SKTileMapNode
    • SKTileMapNode

我希望在我的场景中执行以下操作:

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

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

如何获得我的BackgroundNode 的副本?

【问题讨论】:

    标签: ios swift sprite-kit gameplay-kit


    【解决方案1】:

    您应该使用自己的实现覆盖SKNode 类的copy(with:) 方法,以便能够复制SKNode 的子类。 但你可以简单地做这样的事情:

    guard let background = self.childNode(withName: "BackgroundNode") else {
        return
    }
    
    let backgroundCopy = SKNode()
    
    for child in background.children {
        backgroundCopy.addChild(child)
    }
    addChild(backgroundCopy)
    

    【讨论】:

    • 当然,如果你需要每个孩子的“硬”副本,你可以试试这样的:backgroundCopy.addChild(child.copy() as! SKNode)
    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多