菜鸟教程小白 发表于 2022-12-11 18:13:51

ios - 如何复制带有子节点的 SKNodes


                                            <p><p>如何复制包含两个或多个 <code>SKTileMapNode</code> 的 <code>SKTileMapNode</code> 或 <code>SKNode</code>。</p>

<p>结构是:</p>

<ul>
<li>BackgroundNode(空)

<ul>
<li>SKTileMapNode</li>
<li>SKTileMapNode</li>
</ul></li>
</ul>

<p>我希望在我的场景中执行以下操作:</p>

<pre><code>guard let background = self.childNode(withName: &#34;BackgroundNode&#34;) else {
    return
}
background0 = background
background1 = background.copy()
self.addChild(background1)
</code></pre>

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

<p>如何获得我的 <code>BackgroundNode</code> 的副本?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您应该使用自己的实现覆盖 <code>SKNode</code> 类的<code>copy(with:)</code> 方法,以便能够使用 <code>SKNode</code> 复制其子类.
但你可以简单地做这样的事情:</p>

<pre><code>guard let background = self.childNode(withName: &#34;BackgroundNode&#34;) else {
    return
}

let backgroundCopy = SKNode()

for child in background.children {
    backgroundCopy.addChild(child)
}
addChild(backgroundCopy)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何复制带有子节点的 SKNodes,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45015391/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45015391/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何复制带有子节点的 SKNodes