很奇怪在使用cocos2d-x测试的demo中,加载自定义的资源文件路径就完全没问题,但通过打包的动态库来运行,cocos2d-x的图片就加载不出来,有小伙伴说是没有bundle的问题,这误会就大发了。我们通常会将库的资源文件放在bundle中,是为了避免库中的图片名和工程中使用的图片名冲突的问题。
问题在于工程的设置。
动态库和测试demo,都设置了COMPRESS_PNG_FILES 为NO,但是检查来检查去也不明白问题在哪里,最后百度发现问题在这里,REMOVE_TEXT_METADATA_FROM_PNG_FILES同样需要设置为NO
在Target-build settings中,
点击+,添加自定义选项设置。设置如下
为cocos2d-x设置资源路径
NSString *rPath = @"SXResources";
std::vector<std::string> searchPathList;
searchPathList.push_back([rPath UTF8String]);
cocos2d::FileUtils::getInstance()->setSearchPaths(searchPathList);
注意:
cocos2d-x的资源文件夹默认是Resources。
如下图中,资源文件一定要是蓝色文件才可以,并且蓝色文件的名字不能是Resources,否则运行会报错。
添加进去的资源文件,在Added folders中要选择Create folder references才可以(添加的文件是有目录的),为蓝色文件夹形式存在。它只是将文件单纯的创建了引用,这些文件不会被编译,所以在使用的时候需要加入其路径;
而Create groups并不会存在于项目的目录中:使用Create groups 我们在项目中可以手动添加一个groups(右键点击选择New Group),
但是手动添加的groups实际上并不会存在于项目的目录中,被添加进groups中的文件仍在位于它原来所在的位置,
但从外部引入进来的groups并不会如此。groups一旦被创建或添加,都是以黄色文件夹的形式存在的,
当你想要使用文件夹中的某个类的头文件时,你可以直接添加它的引用。因为groups下的文件是会被编译的。
附赠小技巧:
如何删除build settings的某一项?
答:选中该行,按delete键即可
如何重命名build settings的选项?
答:选中改行,按Enter键即可
参考:
http://blog.csdn.net/zyq522376829/article/details/52484182
http://blog.csdn.net/sinat_20037505/article/details/51549824
IOS中获取各种文件的目录路径的方法
http://blog.csdn.net/better_dong/article/details/52071901