我想使用cocosbuilder和cocos2d-x来开发我的新旧iPhones游戏。我想为两个分辨率创建一个文件。我创建了一个ccb文件,然后将其发布到retina和normal resolution。一切都很好,但是现在我有两个同名的png文件:
发布-iOS/resources-iphone/star.png
发布-iOS/resources-iphonehd/star.png
这是一个问题。我使用的是Xcode,它不喜欢项目中两个同名的文件。我可以在单独的组中将这些文件添加到项目中,但在最终的应用程序包中只能有一个star.png文件。它是随机选择的。当我在iPhone4s上启动我的应用程序时,我看到的是旧iphone显示屏上的图片。如何使用cocosbuilder实现多分辨率?
发布于 2013-03-16 05:53:59
您应该将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的例子中,我包括了非视网膜文件夹以及备用文件夹。
发布于 2013-03-15 01:39:10
Xcode和iOS应用程序捆绑包不是在文件夹中组织的,而是扁平的捆绑包。您需要重命名您的文件才能使其正常工作。我建议这样做:
// iOS Standard
Published-iOS/resources-iphonehd/star@2x.png或者这个
// cocos-2d Standard
Published-iOS/resources-iphonehd/star-hd.pnghttps://stackoverflow.com/questions/15416144
复制相似问题