游戏在所有设备上运行良好,但 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)
}
我在 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)
}