SpriteKit SKScene 未正确调整大小以适合 iPhone 12

Posted

技术标签:

【中文标题】SpriteKit SKScene 未正确调整大小以适合 iPhone 12【英文标题】:SpriteKit SKScene not resizing correctly to fit iPhone 12 【发布时间】:2021-07-04 16:29:54 【问题描述】:

我创建了一个新的 SpriteKit 项目并希望场景完全填满屏幕。我已经定义了具有 iPhone 12 屏幕尺寸(390pt x 844pt)的 GameScene,并在 GameViewController.swift 中指定了以下内容:

if let view = self.view as! SKView? 
    if let scene = SKScene(fileNamed: "GameScene") 
        scene.scaleMode = .aspectFill
        view.presentScene(scene)
    

但是,SKScene 上方和下方仍有大量未占用空间。我无法弄清楚我做错了什么,任何帮助将不胜感激。

【问题讨论】:

确保设置启动画面文件:developer.apple.com/forums/thread/661269 @aheze 这是修复,谢谢。帮我省了很多挫折 可能是您的 SKScene 尺寸不够大,无法填满整个屏幕。请记住,方面填充会扩展到 X 或 Y 中的较大者(有时会导致场景被裁剪)。如果 2 中较大的一个不足以填满屏幕,那么你可能会得到你所拥有的。尝试使用“scene.size = CGSize(width: 750, height: 1125)”。在呈现场景之前插入此代码。您可以随意调整宽度和高度值以满足您的需求。 【参考方案1】:

修复(信用 @aheze)

如here 所述,可以通过在项目设置中的应用图标和启动图像下设置启动屏幕文件来解决此问题。

【讨论】:

以上是关于SpriteKit SKScene 未正确调整大小以适合 iPhone 12的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit 正确的资产大小

如何正确调整 SKView 子视图和 SKScene 的大小

如何使用 Swift 正确切换 SpriteKit 中的 SKScene?

SpriteKit 场景未发布

SpriteKit:以编程方式修改 SKScene 框架

如何在 iOS 设备上调整图像大小?