SKScene 应该是什么尺寸?

时间:2021-02-03 16:02:51

标签: ios swift sprite-kit autolayout arkit

当我 don't specify a size for my SKScene 时,我得到一些奇怪的行为,其中节点要么不出现,要么全屏出现。

一种解决方法是使用 Apple 的入门代码,其中包含 Scene.sks 并将大小硬编码为类似:

sceneView.presentScene(SKScene(size: CGSize(width: 750, height: 1334)))

在我们拥有自动布局、不同屏幕尺寸、尺寸类别、旋转等的世界中,硬编码场景的宽度和高度似乎是不正确的。

指定 SKScene 大小以使其尊重并适应我设备的尺寸、旋转等的正确方法是什么?

例如,我最好能够省略大小:

sceneView.presentScene(SKScene()))

... 而是让自动布局为我调整场景大小。但是,正如链接的问题所示,这会导致场景无法正确显示。或者,如果不能选择自动布局,我应该重写哪些方法以确保我的场景始终正确实例化/更新?

我注意到当我选择不正确的尺寸(例如 200x200)时,它仍然显示节点,但将它们放大到更大。这让我相信无论我选择什么尺寸,它都会正确填充相机输出输出(即不会裁剪任何内容)。但是,如果我选择了错误的尺寸,则艺术品会被不正确地放大/缩小。因此,我现在想知道我是否真的应该根据设备的尺寸来确定尺寸,或者更确切地说是根据相机给我的东西(例如它的像素分辨率)。

1 个答案:

答案 0 :(得分:0)

SpriteKit 场景大小可以这样设置:

let array1 = [1, 2, 3]
let array2 = [1, 2, 3, 5]

var combined = zip(array1, array2).map(+)
let commonCount = combined.count
combined.append(contentsOf: array1.dropFirst(commonCount))
combined.append(contentsOf: array2.dropFirst(commonCount))

print(combined) // [2, 4, 6, 5]
相关问题