如何制作iphone和iphone4-retina兼容的应用程序(在cocos2d中完成)很容易适应ipad?

时间:2011-05-24 08:15:03

标签: iphone ipad cocos2d-iphone iphone-4

我的问题很简单: 我用cocos2d制作了一个iphone应用程序。 2.我将它改编为iphone4-retina,所有PNG文件都有-hd副本。

在iPhone中运行,应用程序显示正确(320x480)。 在iPhone4-retina中运行,该应用程序也正确显示(640x960)。

但是在iPad上运行,如果应用程序仅设置为iPhone,它运行正常,但只能作为iPhone分辨率(320x480)。如果应用程序设置为iPhone / iPad,则会显示错误。

我敢肯定应该有一个选项可以强制视网膜兼容的iPhone应用程序也可以在iPad上运行视网膜(苹果家伙不能傻到错过它),但我找不到它。

选项在哪里?或者,有没有替代方案cocos2d有一个相同的简单开关来完成这项工作?我不需要诸如使用相对坐标或任何需要修改超过20个代码行的建议。

1 个答案:

答案 0 :(得分:2)

据我所知,iPhone应用程序没有自动适应iPad。您仍然可以为iPhone和iPad创建通用应用程序,然后根据您是在一台设备上运行还是在另一台设备上运行来重新创建UI。

具体来说,您可以:

  1. 为通用应用程序(armv6和armv7,针对iPad和iPhone)创建一个XCode项目,然后导入您现有的项目(源,资源,设置)。

    1b中。 (您可以修改现有项目,但这可能更难以正确完成。)

  2. 根据iPad指南添加图标和默认图片以及iPhone的图标和默认图像;

  3. 至于其他方面,您可以采用类似于Xibs here突出显示的方法:

    1. 测试iPad:

      +(布尔)isIpad {    return([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad); }

    2. 在加载前翻译图片名称:

      +(NSString *)properImageFileName:(NSString *)imageName {    if([xxxx isIpad]){       return [NSString stringWithFormat:@“ipad _%@”,imageName];    } else {       return imageName;    } }

    3. 因此,如果你在iPhone上,图像名称不会改变,并将遵循iPhone惯例进行视网膜显示;如果你在iPad上,你可以动态更改名称并使用正确的图像。 (当然,您可以使用您喜欢的惯例来识别iPad图像。)

      这应该是非常简单的,但请记住,通用应用程序中的所有图像都会收费。