我想编写一个简单的Sprite Kit游戏,我必须在场景中的某个地方随机放置一些节点。
为了确保这些节点没有放在安全区域之外,我编写了这个功能:
func updatesafearea() {
let frame = self.size
let sets = view!.safeAreaInsets
let rect = CGRect(x: -(frame.width/2)-sets.left,
y: -(frame.height/2)-sets.top,
width: frame.width-sets.right-sets.left,
height: frame.height-sets.top-sets.bottom)
//Visualize the area
let node = SKShapeNode(rect: rect)
node.fillColor = .red
addChild(node)
}
这应该是一个矩形,其中应该安全地呈现所有节点,但不幸的是,这不适用于iPhone X(模拟器):
iPhone 8和iPhone X模拟器截图如下: