Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建iOS通用应用程序,如何检测所有5个分辨率?_Ios_Cocos2d Iphone - Fatal编程技术网

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

创建iOS通用应用程序,如何检测所有5个分辨率?,ios,cocos2d-iphone,Ios,Cocos2d Iphone,标题很好地说明了这一点。我正在创建一个iOS应用程序,正在添加艺术资产。我有5个iPhone低分辨率(iPhone 3GS或更低)、iPhone视网膜(iPhone 4或更高)、iPhone 5、iPad低分辨率和iPad高分辨率的背景 处理基于设备加载的背景的最佳方法是什么 还有,有没有一种方法可以在模拟器中测试所有5个组件的外观?当然,现在你只能测试iPhone和iPad 此外,这是一个游戏,如果这会有所不同的话,我将使用cocos2d。每个图像可以有两个版本 image.png,image

标题很好地说明了这一点。我正在创建一个iOS应用程序,正在添加艺术资产。我有5个iPhone低分辨率(iPhone 3GS或更低)、iPhone视网膜(iPhone 4或更高)、iPhone 5、iPad低分辨率和iPad高分辨率的背景

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

还有,有没有一种方法可以在模拟器中测试所有5个组件的外观?当然,现在你只能测试iPhone和iPad


此外,这是一个游戏,如果这会有所不同的话,我将使用cocos2d。

每个图像可以有两个版本

image.png,image@2x.png

系统将自动拾取image@2x.png如果是视网膜设备,请参考image.png


同样在模拟器中,您可以进入硬件->设备,然后选择是否要查看视网膜。

如果您使用的是cocos2d,则需要在视网膜分辨率图像上使用-hd后缀。查看他们的网站,了解更多信息


我自己并不使用cocos2d,但从它的声音来看,iphone5的屏幕分辨率处理方式与iPad的屏幕分辨率处理方式相同,通过相应地调整布局。stackoverflow中的搜索应该会为cocos2d和iPhone5带来一些不错的结果。

正如@Srikanth提到的,include image.png&image@2x.png,系统将自动为高分辨率屏幕选择高分辨率屏幕,为低分辨率屏幕选择低分辨率屏幕。这在iPhone和iPad上都适用

对于iPhone5,屏幕仍然是视网膜。系统将自动选择您的-@2x图像。您可以在Interface Builder或代码中定义自动布局(或弹簧和支柱)

如果出于某种原因,你绝对需要一个特定于iPhone5类型屏幕的图像,我相信你可以添加一个图像-568h@2x.png对于4英寸屏幕,系统将自动选择该选项

我能想到的唯一原因是你会包括-568h@2x捆绑包中的图像用于启动图像:您需要一个特定于4英寸屏幕的图像


另外,关于模拟器:您可以测试所有5个分辨率。在模拟器菜单栏(屏幕顶部)中,选择硬件>设备。在这里,您可以选择所有5种分辨率

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

  • 非视网膜iPhone:image.png
  • 视网膜iPhone:image-hd.png
  • 非视网膜iPad:image-iPad.png
  • 视网膜iPad:image-ipadhd.png
本页注释:

警告:不建议使用“@2x”后缀。苹果以一种特殊的方式处理这些图像,这可能会在你的电脑中引起错误 cocos2d应用程序

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

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

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

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

iPhone 5有什么特别的功能吗?因为屏幕更长。我们也有一个特定于该尺寸的图像。谢谢,我不这么认为。屏幕尺寸可能更大,但分辨率仍然是视网膜。顺便说一句,处理所有这些图像的最佳方法是画图(或从设计师处获得)*-ipadhd图像,并在本地使用简单脚本将其转换为-ipad和-hd。@anatoliy_v:ipad和iPhone的纵横比不同,因此我通常让设计师为retina ipad和retina iPhone创建图像。然后,我使用TexturePacker对非视网膜设备的两组图像进行缩放。