我想用cocosbuilder和cocos2d-x来开发适用于新旧iPhone的游戏。我想为两个分辨率创建一个文件。我创建了一个ccb文件然后将其发布到视网膜和正常分辨率。一切都很好但现在我有两个同名的png文件:
公开-IOS /资源-iphone / star.png
公开-IOS /资源-iphonehd / star.png
有一个问题。我正在使用Xcode,它不喜欢项目中具有相同名称的2个文件。我可以将这些文件添加到分离组中的项目中,但在最终应用程序包中,可能只有一个star.png文件。它是随机选择的。当我在iphone 4s上启动我的应用程序时,我有来自旧iphone显示屏的图片。如何使用cocosbuilder进行多种分辨率?
答案 0 :(得分:0)
Xcode和iOS应用程序包不是在文件夹中组织的,而是扁平的捆绑包。您需要重命名文件才能使用。我建议这样的事情:
// iOS Standard
Published-iOS/resources-iphonehd/star@2x.png
或者
// cocos-2d Standard
Published-iOS/resources-iphonehd/star-hd.png
答案 1 :(得分:0)
您应该将XCode项目中的resources-iphone和resources-iphonehd目录导入为文件夹引用而不是组。您可以通过将文件夹拖放到XCode项目上来实现。执行此操作时,您将看到应用程序包中显示的目录。您可以通过选择应用程序的目标并转到Build Phases-> Copy Bundle Resources来检查。
之后,在ApplicationDelegate.cpp文件上,您应该在CCFileUtils的搜索路径列表中添加这些文件夹。
std::vector<std::string> resDirOrders;
if (resolution is iphone)
{
resDirOrders.push_back("resources-iphone");
}
else if (resolution is iphone retina)
{
resDirOrders.push_back("resources-iphonehd");
resDirOrders.push_back("resources-iphone");
}
CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(resDirOrders);
这是根据cocos2d-x devs处理多种分辨率的推荐方法(查看this article)。您可以使用CCDirector中的窗口大小来确定当前分辨率。在iphonehd案例中,我包括非视网膜文件夹以及后备。