考虑到iDevices系列正在扩展,我想这是一个比我更多的人开始遇到的问题:
当您编写面向多个iDevices的应用程序时,如何有效地管理资源,例如3D模型,纹理,全屏图像等?
基本上这个问题有两个部分:
1)是否可以为同一应用程序提供单独的捆绑包到AppStore,其中将为不同的设备提供不同的捆绑包(例如,与iPhone 3GS相比,用户为iPad下载的单独包)或是提供“游戏X”和“游戏X高清”的唯一方法,它似乎在AppStore上变得流行?
2)如果#1的答案为否,那么最佳做法是什么?只保留所有资源的最高分辨率,并在运行时进行缩减采样或保留现成的例如与iPad,iPhone和iPhone 4显示器匹配的全屏图像?
任何输入&建议非常欢迎。我目前的做法是保持3D&设备之间的等效纹理,但保留现成的图像,任何应该完全填满屏幕的东西 - 但我觉得这是一个极大的浪费带宽,特别是当它下载到iPhone 3,其中所有的高分辨率图像将永远不会使用
提前谢谢!
答案 0 :(得分:3)
您可以为“游戏”和“游戏高清”提交不同的应用程序。苹果公司对此非常挑剔 - iPad版本必须“提供任何额外的功能,以区别于你的iPhone版本。如App App Guidelines 2.11节所述” - 或Apple将拒绝它 - 就像他们做的那样从我的回复电子邮件中我引用了:(
在创建通用二进制文件时,您可以为资源文件添加前缀,例如:
的ipad〜picture.xib
或
iphone〜picture.xib
仅在适用平台上运行时使用这些资源。因此,您可以使用“png”文件等执行此操作,只需加载“picture.png” - 并自动使用正确的文件。