cocos2d x 中XML解析與資料儲存

2021-06-21 21:33:27 字數 1910 閱讀 6889

一不小心就玩了一周的遊戲了,哎,玩的時候時間過得總是這麼快。。。

於是今天決定看一下之前不怎麼很熟悉的xml;(之前做遊戲時資料的儲存用到過xml,但這塊是另乙個同事在做,所以不怎麼熟悉),

看了看他寫的xml和解析方法,然後自己改進了下,所以來簡單的總結和分享分享

主要涉及到的有:

1. xml 建立

2.xml的解析

3.將解析後的xml資料用vector儲存起來;

如下:(寫完xml後,最簡單的檢查語法錯誤就是用ie瀏覽器開啟看看,可以開啟則說明語法沒錯)

<?xml version="1.0" encoding="utf-8"?>

1100

4100

5100

在這裡我按照網上的xml書寫格式新建了乙個名為 "mineral.xml"的xml;

(mineral就是礦的意思,xml 中我隨意寫了3中型別的礦石,每種礦石有自己的型別、倍率、概率)

然後將其儲存在資源資料夾裡面,然後新建乙個cocos2d-x專案,

下面貼出主要解析**

//.h檔案

#ifndef __helloworld_scene_h__

#define __helloworld_scene_h__

#include "cocos2d.h"

#include #include typedef struct mineral

*ptrmineral;

class helloworld : public cocos2d::cclayer

;#endif

//.cpp檔案

#include "helloworldscene.h"

#include "../support/tinyxml2/tinyxml2.h"

using namespace tinyxml2;

using_ns_cc;

ccscene* helloworld::scene()

bool helloworld::init()

readminearlxml();

displayvec();

return true;

}bool helloworld::readminearlxml()

else

cclog("star read mineral.xml");

xmldata->parse(pxmlbuffer,nsize);

xmlelement *rootnode = xmldata->rootelement();

if(!rootnode)

xmlelement* curnode = rootnode->firstchildelement("mineral");

while(null!= curnode)

delete xmldata;

return true; }

void helloworld::displayvec()

}void helloworld::menuclosecallback(ccobject* psender)

上面分別包含了xml的解析即xml的資料顯示:

顯示如下:

star read mineral.xml

*********m_pmineralvec*********

= 1

= 100

= 20

= 4

= 100

= 20

= 5

= 100

= 20

對比可知,輸出結果和之前建立的xml一致,就這樣,xml的解析就ok 了,是不是很簡單啊

在cocos2dx中解析plist檔案

先儲存,備用 plist檔案實際上就是xml檔案,預設情況下,我用texturepacker生成的紋理中會對應乙個plist檔案,通過plist檔案的資訊,可以知道紋理中各個小的位置和大小。我生成的plist檔案如下圖 cocos2dx對解析這類的檔案提供了不錯的支援 plistutil.h ifn...

在Cocos2d X中使用xml

xml就可以擴充套件標記語言。在遊戲開發中,經常使用於儲存遊戲資訊,如最高分,遊戲等級。等資訊,和描寫敘述一些資源等,我第一次使用xml是在使用ccanimation建立動畫中,使用plist檔案載入動畫時。使用了xml檔案當中plist檔案事實上就是乙個xml檔案,在前面的部落格中的在cocos2...

cocos2dx記憶體管理解析

今天第一天開始寫部落格,我想我也會一直的堅持堅持下去,和所有人進行分享和交流,這也是源於對技術的熱愛和對遊戲的熾熱,我想我的這一生都將會奉獻給遊戲,他是我一輩子的事業更是我這輩子的朋友,好了廢話就不多說了,第一篇部落格我們就來聊聊cocos2dx的記憶體管理。我們首先來看下下面的 片段 class ...