ios - Spritekit 将完整游戏扩展到 iPad

标签 ios xcode sprite-kit

所以我正在使用 Spritekit 在 Xcode 上为 iPhone 开发游戏。通过使用 node.setScale() 方法,它在所有 iPhone 设备上看起来都一样好。现在我想让它在 iPad 上也可以通用和运行。我如何轻松地做到这一点?是否有某种比例公式?

我已经尝试过的是:

if UIDevice.current.userInterfaceIdiom == .pad {
        sscale = frame.size.height / 768
    }else{
        sscale = frame.size.height / 320
    }

然后我为每个节点创建 node.setScale(sscale)。

这最终不起作用,因为在 iPad Mini 上它看起来与 iPad Air 不同......即节点大小和位置......

有什么帮助吗?

最佳答案

您基本上有 2 个选择。

1) 将场景大小设置为 1024X768(横向)或 768x1024(纵向),并使用默认的 .aspectFill 作为缩放模式。这是 Xcode 7 中的默认设置(iPad 分辨率)。

您通常只是在 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 上的游戏。

这两个选项之间的选择取决于您,并且取决于您制作的游戏。我通常更喜欢使用选项 1 并在 iPad 上显示更多背景。

无论场景大小如何,缩放模式通常最好保留默认设置 .aspectFill 或 .aspectFit

要调整设备的特定内容(例如标签等),您可以这样做

 if UIDevice.current.userInterfaceIdiom == .pad {
   // adjust some UI for iPads
 }

我不会尝试在不同设备上手动更改场景或节点大小/比例的情况下进行一些随机修改,您应该让 xCode/SpriteKit 为您完成。

希望对你有帮助

关于ios - Spritekit 将完整游戏扩展到 iPad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333813/

相关文章:

ios - 设置 maximumDate 时 Datepicker 返回错误的日期

ios - Facebook SDK iOS 的自定义分享、登录按钮

第二次单击时按钮问题的 iOS 声音

ios - 将滑动手势放在 UIWebView 上以获取 IOS 中的滚动方向

ios - SpriteKit : Why does playing sound return error?

ios - 如何继续支持 iOS 5.1 功能已弃用

ios - 重写 Swift 的失败初始化器

ios - 前缀 - 配置有问题

ios - 复杂的敌人行为和模式

ios - SpriteKit `sprite.atlas` 包何时以及如何压缩/优化?