创建iOS通用应用程序,如何检测所有5个分辨率?

Osc*_*car 5 cocos2d-iphone ios

标题很好说.我正在创建一个iOS应用程序,并且正在添加艺术资产.我有5个背景适用于iPhone低分辨率(iPhone 3GS或更低),iPhone视网膜(iPhone 4或更高),iPhone 5,iPad低分辨率和iPad高分辨率.

处理基于设备加载哪个背景的最佳方法是什么?

另外,有没有办法测试模拟器中所有5个样子?当前,你当然只能测试iPhone和iPad.

此外,这是一个游戏,我正在使用cocos2d,如果这将有所作为.

小智 7

对于cocos2D-iPhone,默认后缀如下:

  • 非视网膜iPhone:image.png
  • Retina iPhone:image-hd.png
  • 非视网膜iPad:image-ipad.png
  • Retina iPad:image-ipadhd.png

来自维基页面的注意事项:

警告:建议使用"@ 2x"后缀.Apple以特殊方式处理这些图像,这可能会导致cocos2d应用程序中出现错误.

Cocos2D将自动检测您的硬件并加载适当的图像.您可以在AppDelegate.m中更改默认后缀.

AFAIK,iPhone 5图像没有后缀,因此您可以通过检测设备高度来手动检测和加载自定义精灵:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    // code for iPhone 5
} else {
    // code for all other iOS devices
}
Run Code Online (Sandbox Code Playgroud)

正如其他人所说,你可以通过模拟器测试所有设备(硬件 - >设备)