cocos2dx 不同平台上載入檔案

2021-08-29 22:52:24 字數 922 閱讀 1435

cocos2dx在不同平台上讀取資源檔案時的處理方式是不同的。

在ios下,程式呼叫ccsprite::create("helloworld.png"),函式最終會到mainbundle下查詢檔案。

而在android下,函式會查詢apk檔案,然後從apk中讀取資源檔案。

差異的原因是ios下資源是放在程式bundle目錄下的,而android的apk檔案是zip包,資源都

被壓縮了,所以要從zip中抽取檔案。

結合實際,如果專案中要自己讀取某檔案,比如資料庫檔案test.db,在ios下把其放在resource下就行了;

而在android下要直接呼叫ccfileutils::sharedfileutils()->getfiledata函式,函式返回值是檔案內容指標,

操作完畢記得要將指標delete。

跨平台不是一件容易事啊~~

1. 資源讀取

ios的ipa的資源打包結構和實際結構是一致的,比如,在resource目錄下有乙個client.cfg文字檔案,我們是直接用fread或者ofstream讀取出來的,處理的。 

android的資源,打包的時候會全部拷貝到assets目下,壓縮了一下,分兩種情況:

ccsprite::create()之類的,可以讀取出來;

自己的配置檔案,xml之類的,不能直接讀,必錯。

cocos2dx支援統一的方法: ccfileutils::fullpathforfilename(), 獲取正確路徑; ccfileutils::getfiledata(),解壓,將檔案讀出到記憶體,程式直接處理這個返回值。

2. android ndk, 也定義了__linux__巨集,其他**用到這個巨集的小心,不要在android前面,把android的一些預定義給覆蓋了。

3.  android涉及到的網路的, 在androidmanifest.xml 加上:

cocos2d x獲取平台型別

targetplatform target gettargetplatform 獲取當前裝置型別 裝置列舉變數如下 ktargetwindows window系統 ktargetlinux linux系統 ktargetmacos mac os系統 ktargetandroid android系統 ...

Cocos2d x 跨平台特性分析

作為一款跨平台的 2d 遊戲引擎 cocos2d x 方便發布到各種移動平台,支援也在不斷完善。可以跨平台執行,更據優勢的是可以跨平台開發!作為執行平台來說,目前主要以 ios和 android 平台為多,對其它平台也有支援,如 blackberry 平台,但基本只要滿足前兩者,就能達到我們跨平台執...

cocos2dx 在android平台開啟檔案問題

在網上查到資料能夠通過呼叫cocos2dx裡的getfiledata 這個函式來讀取檔案內容,getfiledata通過檢測不同的平台。呼叫不同的介面的來開啟和讀取檔案,在ios和windows上依舊沒問題,可在android上呼叫讀取檔案時還是打不開檔案。試了非常多方法都不能夠。找公司還有一同事來...