很奇怪在使用cocos2d-x測試的demo中,加載自定義的資源文件路徑就完全沒問題,但通過打包的動態(tài)庫來運行,cocos2d-x的圖片就加載不出來,有小伙伴說是沒有bundle的問題,這誤會就大發(fā)了。我們通常會將庫的資源文件放在bundle中,是為了避免庫中的圖片名和工程中使用的圖片名沖突的問題。
問題在于工程的設(shè)置。
動態(tài)庫和測試demo,都設(shè)置了COMPRESS_PNG_FILES 為NO,但是檢查來檢查去也不明白問題在哪里,最后百度發(fā)現(xiàn)問題在這里,REMOVE_TEXT_METADATA_FROM_PNG_FILES同樣需要設(shè)置為NO
在Target-build settings中,

點擊+,添加自定義選項設(shè)置。設(shè)置如下

為cocos2d-x設(shè)置資源路徑
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才可以(添加的文件是有目錄的),為藍色文件夾形式存在。它只是將文件單純的創(chuàng)建了引用,這些文件不會被編譯,所以在使用的時候需要加入其路徑;
而Create groups并不會存在于項目的目錄中:使用Create groups 我們在項目中可以手動添加一個groups(右鍵點擊選擇New Group),
但是手動添加的groups實際上并不會存在于項目的目錄中,被添加進groups中的文件仍在位于它原來所在的位置,
但從外部引入進來的groups并不會如此。groups一旦被創(chuàng)建或添加,都是以黃色文件夾的形式存在的,
當你想要使用文件夾中的某個類的頭文件時,你可以直接添加它的引用。因為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