【问题标题】:GameScene SpriteKit does not fit iPhone X displayGameScene SpriteKit 不适合 iPhone X 显示器
【发布时间】:2019-01-22 06:04:01
【问题描述】:

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

【问题讨论】:

  • 这个到处都是,你需要让你的场景大小为 iPhone X 大小,并允许 8 进行裁剪。由于纵横比不同,您永远无法在所有设备上匹配场景,因此您需要做出一些设计师选择
  • 有没有办法改变SpriteKit的GameScene的大小。现在是8的比例。我该如何改变呢?
  • 你在SKS文件里改
  • 如何以及在哪里?好像找不到。 :(
  • 认真的吗?你用过苹果提供的模板吗?我不会在这里为琐碎的事情牵你的手。浏览您的项目并了解其中的所有内容。继续点击。

标签: ios swift layout sprite-kit iphone-x


【解决方案1】:

我猜你想要这样的东西吧?

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)

    }
}

它是如何工作的?

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

就是这样。

【讨论】:

  • 非常感谢您的回复,我回家后会尝试的。但是 iPhone X 上的图像会被裁剪还是被拉伸?
  • 矩形既没有裁剪也没有拉伸。它只是调整大小。顺便说一句,如果您需要使用位图图像,您可以选择裁剪或调整大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2013-08-04
  • 1970-01-01
  • 2016-08-24
相关资源
最近更新 更多