答案 0 :(得分:4)
这是一个非常常见的问题。
我们在SpriteKt中通常做的是给SKScene一个固定的大小,让SpriteKit在不同的设备上为你做缩放。
所以基本上我们有2种方法可以正确地完成它
1)将场景大小设置为iPad(例如1024x768 -landscape,768x1024 - portrait)。这是Xcode 7中的默认设置。
你通常只是在iPad上的顶部/底部(风景)或左/右(人像)上显示/显示一些额外的背景,这些背景会在iPhone上被裁剪。
iPhone上的iPad /裁剪更多游戏的例子:
Altos Adventure,Leos Fortune,Limbo,The Line Zen,Modern Combat 5.
2) Apple将xCode 8中的默认场景大小更改为iPhone 6/7(750 * 1334-Portait,1334 * 750-Landscape)。此设置将在iPad上裁剪您的游戏。
在iPad上显示较少的游戏示例:
Lumino City,机器人独角兽攻击
在这两个选项之间进行选择取决于你,并取决于你正在制作的游戏。
无论场景大小比例模式通常最好留在.aspectFill或.aspectFit,再次取决于您的喜好和需要(例如使用aspectFill裁剪或使用aspectFit裁剪黑条)
您可以使用通用资产广告位和/或设备特定图片。这样,您将在所有设备上获得一致的体验
Spritekit scale full game to iPad
How to make SKScene have fixed width?
希望这有帮助
答案 1 :(得分:2)
当您呈现场景时,您还可以设置宽高比。
示例:
if let scene = SKScene(fileNamed: "GameScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
您可以设置4种不同的方面无线电
您可以在Apple文档中找到有关4种不同类型here的信息。
在我看来,您目前已将其设置为aspectFill,但您最好使用aspectFit。这将在某些设备的顶部和底部创建一个黑条,但它将保持纵横比相同。
如果你想让它在所有设备上看起来都很好(没有黑条),你需要检查它正在运行的设备,然后相应地更新精灵的大小和位置。