<强> 强>
,,,,一个游戏怎么能没有游戏存档呢?在cocos2dx中也提供了一个数据存储类,可以作为一个轻量级的数据库来使用。
,,,,它支持五种数据bool, int,浮动,翻倍,字符串的存储。
<强> 强>
,,,, http://gl.paea.cn/contents/252ac3e59bc18069.html
<强> 强>
,,,, https://github.com/shahdza/Cocos_LearningTest/tree/master/demo_%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8CCUserDefault
<强> 强>
强>
改为强>
强>
//void setDataForKey (const char *, pKey,, const Data&,值); Data getDataForKey (const char *, pKey,, const Data&, defaultValue =,数据::Null);//
,,,,
<强> 强>
,,,,类和之前讲的CCDirector, SimpleAudioEngine一样,都是采用
,,,,可以通过函数来获取其唯一的实例对象。
,,,, CCUserDefault采用,就是一般的键值对,这个类似c++中的地图的映射(键-值)。一个关键字对应一个值。其实现的接口也比较简单实用,通过传统的设置(),有()方法访问和修改值。
,,,,它支持五种数据:,,,,。
<强> 强>
,,,,(1)类似地图的映射<强> >强。一个关键字对应一个值,并利用进行访问。
,,,,(2)数据直接存储在一个<强> >强,并且文件名为程序项目的名字,如“MyTest.xml”。
,,,,(3)首次使用时,XML不存在,CCUserDefault会自动创建相应的XML文件。
<强> 强>
,,,,通过(键-值)的方式进行设置。
//void setBoolForKey (,, const char *, pKey,, bool 价值),,,,,,,,,,,,,,,,//设置一个bool值 void setIntegerForKey (const char *, pKey,, int 价值),,,,,,,,,,,,,,,,,//设置一个int值 void setFloatForKey (const 才能;char *, pKey,, float 价值),,,,,,,,,,,,,,,//设置一个浮点值 void setDoubleForKey (char *, const pKey,, double 价值),,,,,,,,,,,,,,//设置一个值的两倍 void setStringForKey (char *, const pKey,, const std:: string&,值),,//设置一个字符串值//
<强> 强>
,,,,通过关键字,来从XML文件中获取数据值。
,,,,
//bool getBoolForKey (,, const char *, pKey,, bool defaultValue =, false),,,,,,,,,,,,,,,,,,,,//读取一个bool值 int getIntegerForKey (const char *, pKey,, int defaultValue =, 0),,,,,,,,,,,,,,,,,,,,,,,,,,//读取一个int值 float getFloatForKey (const 才能;char *, pKey,, float defaultValue =, 0.0),,,,,,,,,,,,,,,,,,,,//读取一个浮点值 double getDoubleForKey (char *, const pKey,, double defaultValue =, 0.0),,,,,,,,,,,,,,,,,,//读取一个值的两倍 std:: string getStringForKey (char *, const pKey,, const std:: string&, defaultValue =, " ");//读,取一个字符串值//
<强> 强>
,,,,当设置完后,数据不会马上保存到XML文件中。
,,,,
//CCUserDefault: sharedUserDefault ()→flush ();//
<强> 强>
,,,,获取单例对象,释放单例对象,获取XML文件路径,判断XML文件是否已经存在。
//static CCUserDefault *, sharedUserDefault();,,//获取单例对象 static void  purgeSharedUserDefault(),,,,,,,,//释放单例对象 const static std:: string&, getXMLFilePath();,//获取XML路径 static bool  isXMLFileExist (),,,,,,,,,,,,,,,,//XML文件是否已创建//
<强> 强>
,,,,(1)每次操作都要打长长的CCUserDefault:: sharedUserDefault(),来获得单例对象。是不是很麻烦呢?可以通过宏定义来缩短长度。
//# define UserDefault  CCUserDefault: sharedUserDefault () null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullcocos2dx基础篇(20)-数据存储CCUserDefault