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

SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域

用if UIDevice.current.userInterfaceIdiom == .pad or if UIDevice.current.userInterfaceIdiom == .phone 先判断设备
我们开发一个App的时候, 通常希望它在 iPhone, iPad, Mac上同时能运行, 尤其是游戏。
这样就需要我们考虑不同设备不同的分辨率,但处理起来比较麻烦,比如说,按照官方的做法,我们需要提供诸如 ifiero@1x,ifiero@2x,ifiero@3x, 这样不同尺寸的图片,那如何简便的适配设备不同的分辨率呢,我们的做法是, 固定一个大小, 向下兼容不同的设备。