游戏适用于iPad 2的所有设备,为什么?

时间:2015-01-25 05:04:24

标签: ios ipad swift sprite-kit

我在Swift工作,并使用SpriteKit创建了一个基本游戏,其中方块在屏幕上反复移动,精灵节点在敲击时“跳跃”。比较简单。 除了iPad 2之外,游戏在每台设备上运行并且看起来都应该如此,包括iPad air和iPad Retina。

当我在iPad 2模拟器上运行游戏时,方块太大,它们之间没有空间,节点也太大了,并且在点击时只能在屏幕上跳半厘米。游戏很乱。

为什么会这样?有没有办法在代码中指定:if设备是iPad 2,以这种方式格式化和调整大小?或者还有另一种解决方法吗?

1 个答案:

答案 0 :(得分:1)

iPad 2具有与原始iPad(第1代)相同的分辨率,因此其分辨率等级为1.0。您需要做的就是检查iPad的分辨率,并根据需要对结果进行依赖。只需添加此扩展程序,使用非常简单:

extension UIDevice{
    var iPad2:Bool {
        return UIDevice.currentDevice().userInterfaceIdiom == .Pad && UIScreen.mainScreen().scale == 1.0
    }
    var iPadRetina:Bool {
        return UIDevice.currentDevice().userInterfaceIdiom == .Pad && UIScreen.mainScreen().scale == 2.0
    }
}

使用

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