【问题标题】:SKScene Viewable Size smaller than View boundsSKScene 可视大小小于视图边界
【发布时间】:2021-03-18 19:38:10
【问题描述】:

我知道我的问题类似于SKScene view not filling screen,但那里的答案并没有回答我遇到的问题。

我希望屏幕填满整个屏幕,而不仅仅是其中的一个子部分。我正在使用 Xcode 12.4 中的游戏模板,下图是游戏在 iPhone 12 模拟器上的运行方式。此外,场景大小为 750x1334。

当我使用scene.size = view.bounds.size 更改场景大小时,我得到以下信息:

标签变大可以证明场景大小发生变化,但可视大小仍然相同。我应该改变不同的尺寸设置吗?我是 SpriteKit 的新手,所以任何信息都会有所帮助。谢谢!

完整的 GameViewController 代码

class GameViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        if let scene = SKScene(fileNamed: "GameScene") {
            scene.scaleMode = .aspectFill
            //Added below code in hopes to create larger viewable area
            //scene.size = view.bounds.size
            view.presentScene(scene)
        }
        
        view.ignoresSiblingOrder = true
        view.showsFPS = true
        view.showsNodeCount = true
    }
}

override var shouldAutorotate: Bool {
    return true
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    if UIDevice.current.userInterfaceIdiom == .phone {
        return .allButUpsideDown
    } else {
        return .all
    }
}

override var prefersStatusBarHidden: Bool {
    return true
}
}

【问题讨论】:

    标签: swift sprite-kit skscene


    【解决方案1】:

    我认为这可能是因为 Apple 错误地从仅限 iOS 的 SpriteKit 游戏模板中删除了启动屏幕(它仍然存在于多平台模板中)。您需要添加和分配一个启动屏幕,或者选择 Main 作为您的启动屏幕。

    启动屏幕定义了应用的工作区域,因此如果没有它,视图边界和场景缩放模式将无法解决此问题。

    Background is not filling the whole view SpriteKit 中的更多信息。

    【讨论】:

    • 这为我解决了这个问题。此外,感谢您解释它修复它的原因。再次感谢!
    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    相关资源
    最近更新 更多