日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cocos数据篇[3.4](4) ——plist文件操作

發布時間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cocos数据篇[3.4](4) ——plist文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【嘮叨】

????在Cocos中,plist文件?是非常常見的配置文件。它是特定格式的xml文件。

????例如:小圖打包成大圖的紋理圖片、制作粒子特效、幀動畫等,都用到了plist文件作為配置文件。

????本節要介紹的是:如何創建plist文件,以及讀取plist文件中的數據信息。? ??


【擴展閱讀】

????http://zh.wikipedia.org/wiki/Plist?(維基百科)

????http://zengrong.net/post/1981.htm?(COCOS2D-X中的PLIST文件格式詳解)

????http://cn.cocos2d-x.org/tutorial/show?id=2117?(Spritesheet的plist文件格式解析)




【plist文件】

????屬性列表Property List)文件是一種用來存儲序列化后的對象的文件

????屬性列表文件的文件擴展名為 .plist,因此通常被稱為plist文件。


1、plist文件在Cocos中的應用

????(1)圖片紋理的配置信息

????????將多個紋理小圖片打包成一個大圖片,并生成plist文件。用于配置各個小圖的名稱、尺寸大小、以及在大圖中的所在的矩形區域位置等信息。

????????可以使用TexturePacker工具,將多個小碎圖的紋理打包成一張大圖片。

????(2)幀動畫的配置信息

????????將幀動畫的數據信息,生成為plist配置文件。包含每幀間隔、動畫重復次數、每一幀所需的圖片、每張圖片的名稱、尺寸大小、以及在大圖中所在的矩形區域位置等信息。

????(3)粒子特效的配置信息

????????將粒子特效的數據信息,生成為plist配置文件。包含粒子發射器的位置信息、發射器模式、最大粒子數量、發射角度、發射速度、紋理貼圖等等信息。

????(4)還有其它。


2、plist文件格式

????plist文件為屬性列表文件,類似于鍵值對(key-value)的形式。

????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>dict</key><dict><key>name</key><string>Alice</string><key>age</key><string>20</string></dict><key>array</key><array><integer>0</integer><integer>1</integer><integer>2</integer></array><key>bool</key><true/><key>data</key><data></data><key>date</key><date>2015-02-16T16:47:11Z</date><key>number</key><integer>123456</integer><key>string</key><string>hello?world!</string> </dict> </plist> //

????屬性類型有:

????????> Dictionary :字典。(子屬性列表為:鍵值對形式)

????????> Array? ? ? ? ?:數組。(子屬性列表為:數組值的形式)

????????> Boolean ? ?:邏輯值。(true / false)

????????> Number ? ?:數字。

????????> String? ? ? ?:字符串。

????????> Date ? ? ? ? ?:日期。

????????> Data ? ? ? ? ?:數據。

????其中,根節點只能為字典或數組。

????并且在字典或數組中,鍵對應的值依然可以為以上的各個屬性類型。


3、創建/編輯plist文件

????在Mac OS系統中,XCode可以直接創建和編輯plist文件。

????當然也可以使用plist編輯軟件,或直接使用文本編輯器進行編寫。

????XCode中,編輯plist文件非常方便。

????其中,根節點Root,只能為Dictionary、或Array類型。

????以上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>dict</key><dict><key>name</key><string>Alice</string><key>age</key><string>20</string></dict><key>array</key><array><integer>0</integer><integer>1</integer><integer>2</integer></array><key>bool</key><true/><key>data</key><data></data><key>date</key><date>2015-02-16T16:47:11Z</date><key>number</key><integer>123456</integer><key>string</key><string>hello?world!</string> </dict> </plist> //

????我想大家應該能讀得懂把。


4、讀取plist文件

????接下來講講如何讀取plist文件的數據信息。

????(1)根節點為Dictionary :使用?FileUtils::getInstance()->getValueMapFromFile(); 讀取為一個ValueMap

????(2)根節點為Array ? ? ? ? ?:使用?FileUtils::getInstance()->getValueVectorFromFile(); 讀取為一個ValueVector

????使用舉例:

// //?文件路徑std::string?path?=?"/soft/cocos2d-x-3.4/projects/Demo34/Resources/testPlist.plist";//?讀取plist文件 //?以根節點為字典Dictionary為例//?根節點為字典Dictionary?,?讀取為一個ValueMapValueMap?plist?=?FileUtils::getInstance()->getValueMapFromFile(path);//?若根節點為數組Array?,?讀取為一個ValueVector//?ValueVector?plist?=?FileUtils::getInstance()->getValueVectorFromFile(path);//?獲取數據//?讀取?"string"CCLOG("string?=?%s",?(plist["string"].asString()).c_str());//?讀取?"dict"?,?也是一個字典ValueMapValueMap&?dict?=?plist["dict"].asValueMap();CCLOG("name?=?%s",?(dict["name"].asString()).c_str());CCLOG("age??=?%s",?(dict["age"].asString()).c_str());//?讀取?"array"?,?是一個數組ValueVectorValueVector&?array?=?plist["array"].asValueVector();for?(int?i?=?0;?i?<?array.size();?i++)?{Value&?value?=?array[i];CCLOG("%d",?value.asInt());} //



轉載于:https://blog.51cto.com/shahdza/1614716

總結

以上是生活随笔為你收集整理的Cocos数据篇[3.4](4) ——plist文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。