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

Другие вопросы по тегам