【问题标题】:Two file with the same name by cocosbuildercocosbuilder的两个同名文件
【发布时间】:2013-03-14 17:28:10
【问题描述】:

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

已发布-iOS/resources-iphone/star.png

已发布-iOS/resources-iphonehd/star.png

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

【问题讨论】:

    标签: xcode cocos2d-x ipa cocosbuilder


    【解决方案1】:

    您应该将 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 开发人员推荐的处理多种分辨率的方法(查看this article)。您可以使用 CCDirector 中的窗口大小来确定当前分辨率。在 iphonehd 案例中,我包括非视网膜文件夹以及后备。

    【讨论】:

      【解决方案2】:

      Xcode 和 iOS 应用程序包不是在文件夹中组织的,而是在平面包中。您需要重命名文件才能使其正常工作。我建议是这样的:

      // iOS Standard
      Published-iOS/resources-iphonehd/star@2x.png
      

      或者这个

      // cocos-2d Standard
      Published-iOS/resources-iphonehd/star-hd.png
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-09
        • 2012-11-12
        • 2015-12-10
        • 1970-01-01
        • 1970-01-01
        • 2015-01-04
        • 1970-01-01
        • 2013-12-10
        相关资源
        最近更新 更多