Игра застряла в безопасной зоне iPhone Xs - PullRequest
0 голосов
/ 17 ноября 2018

Я обновил свою игру, которая, как я думал, будет поддерживать iPhone Xs и iPad 11 дюймов, которая идеально подходит к экрану симулятора (очень неприятно), но не при тестировании на физических устройствах.Кажется, что rootView (мой SKView) ограничен вставками безопасной зоны.Сцена игры ограничена так же, как это изображение.

enter image description here

Я использовал этот метод внутри класса 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 Ответ

0 голосов
/ 17 ноября 2018

Этот код на самом деле работает, как вы хотите:

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", которую я не могу сказать, что на самом деле есть, но я предполагаю, что она относится к безопасной области.

...