我正在制作一个基于 spriteKit 的游戏,想知道我是否可以将 SKScene 设置为固定宽度(以便更轻松地布置 Sprite ),并让它在保持纵横比的同时调整到实际屏幕宽度。是否有可能实现这个目标,是否推荐(会不会因为调整大小而导致 Sprite 渲染不清晰)?
最佳答案
给场景一个固定的大小实际上是我们在 SpriteKit 游戏中想要做的。 SpriteKit 将使用 scaleMode 设置(默认为 .aspectFill)为每个设备缩放游戏。将场景设置为设备大小或将 .resizeFill 用于缩放模式不是一个好主意,因为这会导致不同设备上的大量不一致。我之前去过那里,只有一场比赛,那绝对是一场噩梦。
所以我们基本上有两种方法可以正确地做到这一点
1) 将场景大小设置为 iPad(例如 1024x768 - 横向,768x1024 - 纵向。这是 Xcode 7 中的默认设置。
您通常只是在 iPad 的顶部/底部(横向)或左/右(纵向)显示一些额外的背景。
在 iPad 上显示更多的游戏示例:
Altos Adventure、Leos Fortune、Limbo、The Line Zen、现代 war 5。
2) Apple 将 xCode 8 中的默认场景尺寸更改为 iPhone 6/7(750*1334-Portait,1337*750-Landscape)。此设置将裁剪您在 iPad 上的游戏。
在 iPad 上显示较少的游戏示例:
Lumino City,机器人 unicorn 袭击
这两个选项之间的选择取决于您,并且取决于您制作的游戏。我通常更喜欢使用选项 1 并在 iPad 上显示更多背景。
无论场景大小如何,缩放模式通常最好保留默认设置 .aspectFill。这样,您将在所有设备上获得一致的体验。
我不会尝试在不同设备上手动更改场景或节点大小/比例的情况下进行一些随机修改,您应该让 xCode/SpriteKit 为您完成。
在代码中你会像这样用你喜欢的大小初始化一个 SKScene
let gameScene = GameScene(size: CGSize(width: 1024, height: 768))
如果您使用可视场景编辑器,您可以直接在右侧的检查器面板中设置场景大小。
希望对你有帮助
关于ios - 如何使 SKScene 具有固定宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42878452/