【前言】@H_301_5@
一个游戏怎么能没有游戏存档呢?在Cocos2d-x中也提供了一个数据存储类CCUserDefault,可以作为一个轻量级的数据库来使用。它支持五种数据bool、int、float、double、string的存储。@H_301_5@
@H_301_5@
【Demo下载】@H_301_5@
UserDefault数据存储
@H_301_5@
【Cocos2d-x 3.x】@H_301_5@
(1)去掉 “CC”@H_301_5@
(2)获取单例:sharedUserDefault() 改为 getInstance()@H_301_5@
1
2
@H_301_42@
3
4
|
//
void
setDataForKey(
const
char
*pKey,
const
Data&value);
DatagetDataForKey(
Data&defaultValue=Data::Null);
//
|
(4)其他变化不大。@H_301_5@
【CCUserDefault】@H_301_5@
CCUserDefault类和之前讲的CCDirector、SimpleAudioEngine一样,都是采用单例模式。@H_301_5@
可以通过sharedUserDefault()函数来获取其唯一的实例对象。@H_301_5@
CCUserDefault采用XML存储技术,就是一般的键值对,这个类似C++中的map的映射(键——值)。一个关键字对应一个值。其实现的接口也比较简单实用,通过传统的set()、get()方法访问和修改值。@H_301_5@
它支持五种数据:bool、int、float、double、string。@H_301_5@
1、原理@H_301_5@
(1)类似map的映射(键——值)。一个关键字对应一个值,并利用set()/get()进行访问。@H_301_5@
(2)数据直接存储在一个XML文件中,并且文件名为程序项目的名字,如“MyTest.xml”。@H_301_5@
(3)首次使用时,XML不存在,CCUserDefault会自动创建相应的XML文件。@H_301_5@
2、设置数据值set@H_301_5@
通过(键——值)的方式进行设置。@H_301_5@
setBoolForKey(
bool
value);
//设置一个bool值
setIntegerForKey(
int
//设置一个int值
setFloatForKey(
float
//设置一个float值
setDoubleForKey(
double
//设置一个double值
setStringForKey(
std::string&value);
//设置一个string值
3、获取数据值get@H_301_5@
|