
-----------------------
这次讲下静态数据的使用。额,看到静态数据几个字是不是感觉很有技术性,什么static之类的。哈哈。
那么啥是静态数据呢?静态数据就是程序中的只读数据,例如我们游戏里有一些NPC,他们的名字、图片、人物介绍都是固定不变的,并不会再游戏过程中发生改变,例如你并不可能说在《富甲封神传》这款游戏里用哪吒打败了李靖就认为哪吒是李靖的老子吧?当然了,在游戏开发过程中这些NPC的属性数值可能经常变动,如哪吒的基础血量本来是100,后来觉得100太小,于是你决定给他改成101。为了便于修改,常规的做法就是将这些数据放到外部文件保存。
这里就选择用pList保存静态数据,然后用下面的方法读取pList数据:
[cpp] view plain copy autodic=Dictionary::createWithContentsOffile(std::string&pfilename);//读取到字典里,存于缓存中。 //或者 autoarray=Array::createWithContentsOffile(std::string&pfilename);//读取与array数组中。 下面用一个小例子简单介绍下如何使用:
假如要做一款名为 《爱上喜羊羊的灰太狼》,NPC有俩,分别是喜羊羊与灰太狼,他们 在pList中的ID分别为10 和 20.如下:
[HTML] view plain copy <?xmlversion="1.0"enCoding="UTF-8"?> <!DOCTYPEpListPUBliC"-//Apple//DTDPList1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <pListversion="1.0"> <array> <dict> <key>ID</key> <string>10</string> <key>name</key> <string>喜羊羊</string> <key>image</key> <string>xiyy.png</string> <key>info</key> <string>是一只羊,星座:白羊座,喜欢被灰太狼吃</string> </dict> <dict> <key>ID</key> <string>20</string> <key>name</key> <string>灰太狼</string> <key>image</key> <string>huitl.png</string> <key>info</key> <string>来自北方的狼,星座:猎户座,喜欢吃喜羊羊</string> </dict> </array> </pList> 因为在pList中NPC数据是存在array中,所以这里我选择用Array来读取数据,过程如下:
[cpp] view plain copy autom_array=Array::createWithContentsOffile("info.pList");//读取pList数据,存于m_array数组中 //遍历m_array数组,通过NPC的ID找到想要的NPC信息 for(inti=0;i<m_array->count();i++) { //从上面的pList内容可以看出,每个NPC的数据是以dic(字典)的方式存于array数组中 autodic=static_cast<Dictionary*>(m_array->getobjectAtIndex(i)); intID=(static_cast<String*>(dic->objForKey("ID")))->intValue();//从字典中找到ID对应的key值,并转化成int型 //如果ID=10,即这个是喜羊羊的ID if(ID==10) { std::stringname_str=(static_cast<String*>(dic->objForKey("name")))->getString();//读取喜羊羊的名字 std::stringimage_str=(static_cast<String*>(dic->objForKey("image")))->getString();//读取喜羊羊图片名 std::stringinfo_str=(static_cast<String*>(dic->objForKey("info")))->getString();//读取喜羊羊的介绍 ... //下面随便你去折腾 } } 总结
以上是内存溢出为你收集整理的Cocos2dx 小技巧(七) 静态数据全部内容,希望文章能够帮你解决Cocos2dx 小技巧(七) 静态数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)