sprite-kitskview

SKView does not cover the entire screen area


I started studying SpriteKit recently with one famous textbook and immediately a problem arose. In all video lessons, SKView covers the entire display area. I have the opposite situation and I don't know how to fix it. Here are the screenshots:

iPhone with notch

classic iPhone

Here is the source code:

GameViewController.swift:

import UIKit
import SpriteKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Set the scale mode to scale to fit the window
    
        let skView = self.view as! SKView
        skView.showsFPS = true
        skView.showsNodeCount = true
        skView.ignoresSiblingOrder = true
    
        let scene = GameScene(size: CGSize(width: 2000, height: 1500))
        scene.scaleMode = .aspectFill
        // Present the scene
        skView.presentScene(scene)
    }

    override var shouldAutorotate: Bool {
        return true
    }

    override var prefersStatusBarHidden: Bool {
        return true
    }
}

GameScene.swift:

import SpriteKit

class GameScene: SKScene {
    override func didMove(to view: SKView) {
        backgroundColor = .brown
    }
}

I don't know if anyone had such problems before the macOS 11 and Xcode 12, but now they are. How to stretch SKView across all screen?


Solution

  • Set your project's Lauch screen file to "Main".

    enter image description here