温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Cocos2d-x游戏开发之TecturePacker的plist解析

发布时间:2020-06-19 17:17:12 阅读:2541 作者:lonag 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

 先要做准备工作

先下载DS_Dictionary.hDs_Dictionary.cpp,不多说提供下载地址

http://www.cocos2d-x.org/boards/6/topics/6125?r=13203#message-13203

文件基于pugixml下面是下载地址

http://pugixml.org/

 

下面提供test.plist作对照

 

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>texture</key>     <dict>         <key>width</key>         <integer>512</integer>         <key>height</key>         <integer>1024</integer>     </dict>     <key>frames</key>     <dict>         <key>bg_0.png</key>         <dict>             <key>x</key>             <integer>1</integer>             <key>y</key>             <integer>289</integer>             <key>width</key>             <integer>480</integer>             <key>height</key>             <integer>287</integer>             <key>offsetX</key>             <real>0</real>             <key>offsetY</key>             <real>1</real>             <key>originalWidth</key>             <integer>480</integer>             <key>originalHeight</key>             <integer>289</integer>         </dict>         <key>bg_2.png</key>         <dict>             <key>x</key>             <integer>1</integer>             <key>y</key>             <integer>1</integer>             <key>width</key>             <integer>480</integer>             <key>height</key>             <integer>287</integer>             <key>offsetX</key>             <real>0</real>             <key>offsetY</key>             <real>0</real>             <key>originalWidth</key>             <integer>480</integer>             <key>originalHeight</key>             <integer>287</integer>         </dict>         <key>bg_1.png</key>         <dict>             <key>x</key>             <integer>1</integer>             <key>y</key>             <integer>577</integer>             <key>width</key>             <integer>480</integer>             <key>height</key>             <integer>287</integer>             <key>offsetX</key>             <real>0</real>             <key>offsetY</key>             <real>0</real>             <key>originalWidth</key>             <integer>480</integer>             <key>originalHeight</key>             <integer>287</integer>         </dict>     </dict> </dict> </plist> 

下面提供一个解析的函数

 

void collision::plistParse() {     //Load rootDict from file, and then step into the metadata sub dict.     DS_Dictionary rootDict;     if(!rootDict.loadRootSubDictFromFile(bgObjectPlist))     {              printf("no load\n");      }     if(!rootDict.stepIntoSubDictWithKey("texture"))     {             printf("No texture\n");      }     //Get an int value from the subdict     int someInt = rootDict.getIntegerForKey("height");      printf("height    %d\n",someInt);      someInt = rootDict.getIntegerForKey("width");      printf("width    %d\n",someInt);     //Step out of the sub dict and into another     rootDict.stepOutOfSubDict();      if(!rootDict.stepIntoSubDictWithKey("frames"))     {             printf("no dic\n");      }     for(int i=0;i<3;)     {         char picture[20];         sprintf(picture,"bg_%d.png",i);         if(!rootDict.stepIntoSubDictWithKey(picture))         {             i++;             //printf("No    %s\n",picture);             rootDict.stepOutOfSubDict();             continue;         }         int x=rootDict.getIntegerForKey("x");         int y=rootDict.getIntegerForKey("y");         int width=rootDict.getIntegerForKey("width");         int height=rootDict.getIntegerForKey("height");     }     void stepBackToRootSubDict(); } 

 

 

 

 

 

 

 

 

 

 

 

 

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×