游戏在所有设备上运行良好,但 iPad 2,为什么?

game works well on all devices but iPad 2, why?

我在 Swift 工作并使用 SpriteKit 创建了一个基本游戏,其中方块在屏幕上重复向下移动,点击时有一个 sprite 节点 "jumps"。比较简单。 游戏 运行 在所有设备上都如其所愿,包括 iPad air 和 iPad Retina,但 iPad 2 除外。

当我 运行 在 iPad 2 模拟器上玩游戏时,方块太大了,它们之间没有 space,节点也太大了并且在点击时只会在屏幕上跳跃半厘米。游戏一团糟。

为什么会出现这种情况?有没有办法在代码中指定:if 设备是 iPad 2,以这种方式格式化和调整所有内容的大小?或者有其他方法可以解决这个问题吗?

iPad 2 与原始 iPad(第 1 代)具有相同的分辨率,因此它的分辨率比例为 1.0。您需要做的就是检查 iPad 分辨率并根据结果执行您需要的操作。只需添加此扩展名,用法就非常简单:

extension UIDevice{
    var iPad2: Bool {
        userInterfaceIdiom == .pad && UIScreen.main.scale == 1
    }
    var iPadRetina: Bool {
        userInterfaceIdiom == .pad && UIScreen.main.scale == 2
    }
}

用法:

if UIDevice.current.iPadRetina {
    // do whatever you need for the iPad with Retina Screens (2x)
}
if UIDevice.current.iPad2 {
    // do whatever you need for the iPad 2 without Retina (1x)
}