當前位置:成語大全網 - 書法字典 - cocos2dx CCFileUtils或CCDictionary如何讀取文件?

cocos2dx CCFileUtils或CCDictionary如何讀取文件?

在cocos2d-x中,您可以在。plist格式,這是XML文件格式之壹。cocos2d-x解析of的相關資料很少。plist,但也很簡單。來分析。plist文件,可以參考cocos2d-x的類庫中的CCSpriteFrameCache類和CCParticleSystem類,主要是用CCDictionary類來操作。plist文件。

以下是壹個. plist文件:

& lt?xml版本="1.0 "編碼="UTF-8 "?& gt

& ltplist version="1.0 " >

& ltdict & gt

& ltkey & gtlevel 1 & lt;/key & gt;

& ltdict & gt

& ltkey & gtbg _遠_景& lt/key & gt;

& ltdict & gt

& ltkey & gt路徑& lt/key & gt;

& lt字符串& gtimages/far _ scene . png & lt;/string & gt;

& ltkey & gtpos & lt/key & gt;

& lt字符串& gt{358,309 } & lt/string & gt;

& lt/dict & gt;

& ltkey & gtbg _ near _ scene & lt/key & gt;

& ltdict & gt

& ltkey & gt路徑& lt/key & gt;

& lt字符串& gtimages/near _ scene . png & lt;/string & gt;

& ltkey & gtpos & lt/key & gt;

& lt字符串& gt{360,100 } & lt;/string & gt;

& lt/dict & gt;

& lt/dict & gt;

& lt/dict & gt;

& lt/plist & gt;

讀取的代碼。plist文件如下:

const char * testPlistPath = " BSPlistDatas \ \ test . plist ";

const char * full path = ccfile utils::shared file utils()-& gt;fullpath from relative file(" test . plist ",testPlistPath);

CCDictionary * plist DIC = CCDictionary::createwithcontentsofile(testPlistPath);

CCDictionary * level DIC = dynamic _ cast & lt;CCDictionary * & gt(plist DIC-& gt;objectForKey(" level 1 ");

CCDictionary * far scene = dynamic _ cast & lt;CCDictionary * & gt(level DIC->;objectForKey(" BG _ far _ scene ");

cc string * farScenePath = dynamic _ cast & lt;CCString * & gt(farScene-& gt;objectForKey(" path "));

cc point point = CCPointFromString(far scene-& gt;valueForKey(" pos ")-& gt;getCString());

CCLog("path = %s ",farScenePath-& gt;getCString());

CCLog("pos = %f,%f ",point.x,point . y);

第壹行是的相對路徑。plist文件。通過CCFileUtils類獲取文件中的絕對路徑後,使用ccdictionary:: create不帶內容文件(文件路徑);將文件的內容加載到CCDictionary數據結構的內存中,然後通過xxxForKey獲取相應鍵下的值。

這裏需要註意的是,在讀取' pos '時,它的值是壹個字符串{x,y},這是中的數組存儲規則。plist文件。我們可以通過Cocos2d-X提供的函數api將這樣的字符串轉換成CCpoint對象。

cc point point = CCPointFromString(far scene-& gt;valueForKey(" pos ")-& gt;getCString());

上面這句話就是這樣壹個轉換過程,同樣的cocos2d-x也支持CCSize和CCRect的字符串轉換。它們的轉換方法和。計劃如下:

cc point:CCPointFromString();{x,y}

CCSize:CCSizeFromString();{w,h}

cc rect:CCSizeFromString();{x,y,w,h}

這樣,初始化2D遊戲所需的所有數據基本上就足夠了。我們可以試著把遊戲的初始數據放進去。plist,然後修改調整值直接修改plist文件,不需要重新編譯程序,實現了遊戲數據和遊戲邏輯的分離。