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

最佳答案

ios - GameScene SpriteKit不适合iPhone X显示屏-LMLPHP

我想你想要这样的东西👆

1.可调整大小的场景

首先,您要调整场景大小(更改大小和宽高比),以使其与显示完全匹配。所以打开GameViewController.swift并设置

scene.scaleMode = .resizeFill

2.可调整大小的矩形

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

    override func didMove(to view: SKView) {

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

    }
}

它是如何工作的?

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

而已。

10-07 19:56
查看更多