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