cocosbuilder的两个同名文件

时间:2013-03-14 17:28:11

标签: xcode cocos2d-x ipa cocosbuilder

我想用cocosbuilder和cocos2d-x来开发适用于新旧iPhone的游戏。我想为两个分辨率创建一个文件。我创建了一个ccb文件然后将其发布到视网膜和正常分辨率。一切都很好但现在我有两个同名的png文件:

公开-IOS /资源-iphone / star.png

公开-IOS /资源-iphonehd / star.png

有一个问题。我正在使用Xcode,它不喜欢项目中具有相同名称的2个文件。我可以将这些文件添加到分离组中的项目中,但在最终应用程序包中,可能只有一个star.png文件。它是随机选择的。当我在iphone 4s上启动我的应用程序时,我有来自旧iphone显示屏的图片。如何使用cocosbuilder进行多种分辨率?

2 个答案:

答案 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案例中,我包括非视网膜文件夹以及后备。