SpriteKit在复制节点时留了一个巨坑给开发者,需要开发者手动把复制节点的isPaused设置为false

根据When an overlay node with actions is copied there is currently a SpriteKit bug where the node’s isPaused property might be set to true提示,SpriteKit有一个Bug需要开发者自己来填。
SpriteNode节点在被copy()复制后,会自动被设置为暂停,也就是节点的所有Action全部不可用,如果需要使用node.run(SKAction.run{//code}),得把复制后的节点isPaused设置为false 。

SpirteKit深度复制SKSpriteNode节点及convert转换其它Scene上的节点到当前场景坐标

How to deep copy SKSpriteNode with SKSpritekit and Covert node from other SKScene to Current Coordinate
用spritenode.copy()把其它Scene(CircleScene.sks)里的节点拷贝一份,并把拷贝的这一份节点加到当前的scene(GameScene.sks)里,还有一个重要的注意点,就是如果要在GameScene.sks取得 Overlay内的红色节点的准确坐标,须用convert把copy到fgNode的节点上的红色节点坐标转为GameScene的坐标(let pos = fgNode.convert(sprite.position, from: sprite.parent!))

留意巨坑:得把复制的节点的isPaused设置为false,才可运行节点的所有SKAction