GameScene SpriteKit 不适合 iPhone X 显示屏

Naw*_*gou 5 layout ios sprite-kit swift iphone-x

我一直在寻找并尝试在互联网上找到的所有解决方案。它们都没有按预期工作。我的游戏需要边框,如所附图片所示。它与 iPhone 8 和 8 Plus 配合良好。在 X 上,我似乎无法找到在不破坏游戏场景的情况下填充它的正确方法。即使我使用resizeFillaspectFill它会切断我游戏区域的重要内容。图像中的那个是aspectFit但给了我黑色边框,看起来不太好并且没有利用更大的屏幕。GameScene 文件中的布局不符合 iPhone X。我怎样才能使游戏针对所有这 3 台设备进行优化。我知道如何为故事板上具有约束和自动布局的应用程序执行此操作,但我对 SpriteKit 和 GameScenes 有点陌生。即使 iPhone X 上的黑色边框填充了我边框的颜色,我也不介意。但我不知道如何实现它,而且我不认为它是为所有这 3 种设备优化游戏的最佳实践。预先感谢您的帮助。iPhone X、8 和 8 Plus

Luc*_*tti 4

在此输入图像描述

我想你想要这样的东西吧

1.可调整场景大小

首先,您希望调整场景大小(更改大小和纵横比)以完美匹配显示。所以打开GameViewController.swift并设置

scene.scaleMode = .resizeFill
Run Code Online (Sandbox Code Playgroud)

2. 可调整大小的矩形

现在您想要创建一个与场景周长匹配的矩形。这很简单,打开你的场景并写下以下内容

class GameScene: SKScene {

    override func didMove(to view: SKView) {

        let rectangle = SKShapeNode(rect: self.frame)
        rectangle.strokeColor = .green
        rectangle.lineWidth = 20
        addChild(rectangle)

    }
}
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

正如您所看到的,我正在使用场景的同一帧创建一个矩形。因此,您确信您的矩形将始终与场景的周长匹配(将与显示匹配)。

就是这样。