**:
在cocos2d-x中可以用.plist格式的檔案來儲存資料,它是xml檔案格式的一種,在cocos2d-x解析.plist方面相關的資料比較少,但本身也很簡單,要解析.plist檔案可以參考cocos2d-x類庫中的ccspriteframecache類和ccparticlesystem類,它主要是使用ccdictionary類來對.plist檔案進行操作。
下面有乙個.plist檔案:
xml version="1.0" encoding="utf-8"讀取.plist檔案的**如下:?>
>
<
plist
version
="1.0"
>
<
dict
>
<
key>level1
key>
<
dict
>
<
key>bg_far_scene
key>
<
dict
>
<
key>path
key>
<
string
>images/far_scene.png
string
>
<
key>pos
key>
<
string
>
string
>
dict
>
<
key>bg_near_scene
key>
<
dict
>
<
key>path
key>
<
string
>images/near_scene.png
string
>
<
key>pos
key>
<
string
>
string
>
dict
>
dict
>
dict
>
plist
>
const第一行是.plist檔案的相對路徑,通過ccfileutils類獲得檔案中絕對路徑後,使用ccdictionary::createwithcontensoffile(filepath);將檔案中內容載入到ccdictionary資料結構的記憶體中,然後通過***forkey獲得相應的key下的value。char* testplistpath = "
bsplistdatas\\test.plist";
const
char* fullpath = ccfileutils::sharedfileutils()->fullpathfromrelativefile("
test.plist
", testplistpath);
ccdictionary* plistdic =ccdictionary::createwithcontentsoffile(testplistpath);
ccdictionary* leveldic = dynamic_cast(plistdic->objectforkey("
level1
"));
ccdictionary* farscene = dynamic_cast(leveldic->objectforkey("
bg_far_scene
"));
ccstring* farscenepath = dynamic_cast(farscene->objectforkey("
path
"));
ccpoint point = ccpointfromstring(farscene->valueforkey("
pos")->getcstring());
cclog(
"path = %s
", farscenepath->getcstring());
cclog(
"pos = %f, %f
", point.x, point.y);
這裡需要注意的是,當在讀取'pos'的時候,它的值乙個的字串,這是.plist檔案中的陣列儲存規則,我們可以通過cocos2d-x提供函式api將這樣的字串轉化為ccpoint物件。
ccpoint point = ccpointfromstring(farscene->valueforkey("上面這句話就是做了這樣的乙個轉化的過程,同樣的cocos2d-x還支援ccsize、ccrect的字串的轉化。他們轉化的方法以及在.plist中對應的字串格式如下:pos")->getcstring());
ccpoint: ccpointfromstring();
ccsize: ccsizefromstring();
ccrect: ccsizefromstring();
這樣我們2d遊戲所初始化所需要的資料都基本上夠用了,可以嘗試將遊戲的初始資料放在.plist中,然後修改調整數值就可以直接修改plist檔案,而無需重新編譯程式了,從而實現遊戲資料和遊戲邏輯的分離。
在cocos2dx中解析plist檔案
先儲存,備用 plist檔案實際上就是xml檔案,預設情況下,我用texturepacker生成的紋理中會對應乙個plist檔案,通過plist檔案的資訊,可以知道紋理中各個小的位置和大小。我生成的plist檔案如下圖 cocos2dx對解析這類的檔案提供了不錯的支援 plistutil.h ifn...
收集 cocos2dx中載入使用plist檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 貼背景 讀取粒子效果 particlesystem m emitter1 particlesystemquad create snow.plist m emitter1 retain particlebatchnod...
Cocos2d x讀取本地檔案
在公司在專案開發的時候需要讀取本地的檔案,於是在網上搜尋了一下以下關於cocos2d x檔案讀取的操作,用了兩種方法都可以實現,一種是使用c 另種是cocos2d x 如下 讀取檔案 引數分別為檔名和文字框 void gameregistry readfile const char pfilenam...