【问题标题】:How to make an iphone and iphone4-retina compatible app (done in cocos2d) easily adapted to ipad?如何使 iphone 和 iphone4-retina 兼容的应用程序(在 cocos2d 中完成)轻松适应 ipad?
【发布时间】:2011-05-24 08:15:02
【问题描述】:

我的问题很简单: 1.我做了一个iphone应用,全部在cocos2d中完成。 2.我把它适配到了iphone4-retina,所有PNG文件都有自己的-hd副本。

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

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

我确信应该有一个选项可以强制兼容视网膜的 iPhone 应用程序也作为视网膜在 iPad 上运行(苹果人不会傻到错过它),但我就是找不到。

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

【问题讨论】:

    标签: iphone ipad cocos2d-iphone iphone-4


    【解决方案1】:

    据我所知,iPhone 应用程序不会自动适应 iPad。您仍然应该能够为 iPhone 和 iPad 创建一个通用应用程序,然后根据您是在一台设备上运行还是在另一台设备上运行来重新创建您的 UI。

    具体来说,您可以:

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

      1b。 (您可以修改现有项目,但要正确执行此操作可能会比较棘手。)

    2. 除了为 iPhone 提供的图标和默认图像外,还根据 iPad 指南添加图标和默认图像;

    至于其余部分,您可以采用与 Xibs 突出显示的 here 类似的方法:

    1. iPad 测试:

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

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

      +(NSString*)properImageFileName:(NSString*)imageName { if ([xxxx isIpad]) { return [NSString stringWithFormat:@"ipad_%@", imageName]; } 别的 { 返回图像名称; } }

    因此,如果您使用的是 iPhone,图像名称不会更改,并且将遵循 iPhone 的视网膜显示约定;如果您在 iPad 上,您可以随时更改名称并使用正确的图像。 (当然,您可以使用您喜欢的约定来识别 iPad 图像)。

    这应该让它变得非常简单,但请记住,在您的通用应用中包含所有图像会造成尺寸损失。

    【讨论】:

    • 是的,太琐碎了,不是我想要的。我更喜欢对基础架构进行一些修改,而不是对应用层进行修改。还有,现在的问题包括cocoa和cocos2D两个方面,分别如何应对。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多