当我的应用程序中包含SpriteKit场景时,我不得不将场景的原始相机位置从以下位置转换为iOS 10:
cameraNode.position = CGPoint(x: self.size.width/2, y: self.size.height/2)要说明iOS10,请执行以下操作:
if #available(iOS 10, *) {
cameraNode.position = CGPoint(x: self.size.width/2, y: (self.size.height + voidSize)/2)
}
else {
cameraNode.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
}iOS10版本实际上更有意义,因为我确实有一部分屏幕外的场景(在向用户‘展示’之前,精灵首先被创建),而'voidSize‘代表了这一点。因此,必须添加一个偏移量来说明屏幕外的部分是有意义的。
问题是,iOS 10中的SpriteKit有什么变化,让我像这样纠正了以前没有的相机位置?
这款应用现在在iOS 9和iOS 10上都能正常运行--只是好奇是什么导致了这一点。
发布于 2016-09-20 02:56:57
SKCameraNode有一个错误,它不能正确地居中。它现在可以在iOS10上正常工作,所以不要使用iOS9检查,只要使用你所说的更有意义的新设置即可。
我在应用商店上的游戏还没有更新到iOS10,现在看起来是错误的。因此,这必须是一个一般性的修复,而不是特定于iOS版本的修复。
我甚至做了一个关于这个的bug报告,苹果已经回应并确认修复了(27171076)
主要的要点是这样的
摘要:在SKCameraNode中使用默认的SpriteKit模板并将其放在屏幕中央会导致iPhones上的摄像头偏移。在iPads上,它如预期的那样居中。
重现步骤:-创建新的精灵套件默认模板-在屏幕中央添加SKCamera节点和中心(在代码中或使用视觉级别编辑器)
预期结果:该摄像头像在iPads上一样,以iPhone为中心。
实际结果: Camera is offCenter on iPhones。纵向HelloWorld标签向左移动,横向向下移动。“
https://stackoverflow.com/questions/39551231
复制相似问题