Игра застряла в безопасной зоне iPhone Xs
Я обновил свою игру, которая, как я думал, будет поддерживать iPhone Xs и iPad 11 дюймов, что идеально подходит к экрану на симуляторе (очень неприятно), но не при тестировании на физических устройствах. Кажется, что rootView (мой SKView) ограничен вставками безопасной зоны. Сцена игры ограничена так же, как это изображение.
Я использовал этот метод внутри класса UIViewController, чтобы сделать корневой вид в виде SKView с размером экрана устройства.
override open func loadView() {
view = SKView(frame: UIScreen.main.bounds)
}
Затем создайте сцену с тем же соотношением сторон (но не одного размера), что и у SKView, и дайте ей масштабироваться, чтобы уместиться в SKView. Например, someSpecifiedSize будет (812 375) на iPhone X/Xs/XsMax/Xr, (667 375) для iPhone 5,6,7,8 и (667 500) для всех iPad, кроме 11-дюймового. Это может быть странно, но из-за характера моей игры это должно быть так.
let scene = SKScene(size: someSpecifiedSize)
scene.scaleMode = .aspectFill
Я не понимаю, почему вид включает безопасную область, потому что я не использовал вставки при определении его размера. Как сделать так, чтобы SKView соответствовал размеру экрана устройства, а не размеру безопасной области?
1 ответ
Этот код на самом деле работает, как вы хотите:
self.view = SKView(frame: view.bounds)
let scene = SKScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .resizeFill
scene.backgroundColor = .green
skView.presentScene(scene)
Ваша проблема, кажется, переменная "someSpecifiedSize", которую я не могу сказать, что на самом деле, но я думаю, что это относится к безопасной области.