Cocos2d-wophone中如何將資源文件打包成zip文件
前置條件
這里假定讀者已經(jīng)能夠使用 cocos2d-wophone 進(jìn)行游戲的開發(fā),并且可以通過從硬盤讀取資源文件。如果還不清楚這些的話,那么請(qǐng)移步到 這里 補(bǔ)充相關(guān)的知識(shí)。
本文中使用的示例代碼、截圖等都是基于 cocos2d-x 源碼中的 tests 工程的,為了在閱讀本文時(shí)能夠更好的明白各個(gè)操作,建議您下載 cocos2d-x的源碼 ,并按照如何在WoPhone上運(yùn)行tests工程這篇文章將 tests工程運(yùn)行起來。
如何操作
對(duì)于如何讓自己的代碼可以從zip文件中讀取相應(yīng)的資源文件,操作是很簡(jiǎn)單的,只需要兩個(gè)步驟。這里以 test wophone 工程為例,步驟如下:
首先將 tests/Res 目錄下的所有的資源文件打包成 TestCocos2dx.zip 文件,并且需要將該文件放到指定的目錄(見第二步中示例代碼)。這里為了讓代碼中使用資源文件時(shí)所用的參數(shù)不需要修改,需要保證 zip 文件中的目錄結(jié)構(gòu)如下圖:
然后在 AppDelegate 類的 applicationDidFinishLaunching 函數(shù)中添加如下代碼即可:
1#if defined(CCX_PLATFORM_WOPHONE)
2 // set the resource zip file
3 CCFileUtils::setResource("TestCocos2dx.zip");
4#endif
cocos2d-wophone 目前支持的幾種資源文件讀取方式對(duì)比
讀取方式 | 優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|---|
硬盤讀取 | 實(shí)現(xiàn)簡(jiǎn)單,只需要調(diào)用 CCFileUtils::setResource() 接口,通過第二個(gè)參數(shù)設(shè)置資源文件路徑即可。 | 1. 在打包安裝程序時(shí),很難將數(shù)據(jù)文件進(jìn)行打包; 2. 資源文件未完全封閉 |
使用 zip 文件 | 1. 實(shí)現(xiàn)簡(jiǎn)單,只需要調(diào)用 CCFileUtils::setResource() 接口通過***個(gè)參數(shù)設(shè)置 zip 文件的名稱; 2. 打包安裝程序簡(jiǎn)單,只要將 zip 文件當(dāng)做數(shù)據(jù)文件打包就可以了。 |
資源文件未完全封閉 |
多種方式并存時(shí)的調(diào)用順序
當(dāng)在代碼中,多種資源文件讀取方式并存時(shí),檢查的順序如下:
「從 zip 文件讀取」->「從硬盤讀取」
這里需要注意的一點(diǎn)是,當(dāng)指定的 zip 文件存在時(shí),如果需要使用的資源文件在 zip 文件中無法找到,那么將不會(huì)再從硬盤中查找資源文件。
WoPhone 資源文件的存放路徑
根據(jù) CCFileUtils::setResource() 函數(shù)第二個(gè)參數(shù)值的不同,需要將資源文件放到不同的目錄,列表如下:
參數(shù)值 | 模擬器路徑 | 真機(jī)路徑 |
---|---|---|
NULL | D:/Work7/NEWPLUS/TG3/APP | 與應(yīng)用的 .so 文件同目錄 |
開發(fā)者設(shè)定的目錄 | 開發(fā)者設(shè)定的目錄 | 開發(fā)者設(shè)定的目錄 |