本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010
一般游戏中都需要记录玩家数据,便于玩家下次登录时能够接着上次的游戏记录继续游戏。这样一来就需要我们在
开发时对玩家数据进行存档与读档。对于游戏数据的存储,在不同手机操作系统下都有自己的存储方式,例如常见的
SQLite等,在Cocos2D-X引擎中考虑到跨平台性,它也为开发者提供了跨平台的存储相关类CCUserDefault,那么这
一期我们就一起来学习如何使用Cocos2D-X提供的CCUserDefault。
一、游戏数据存储
由于CCUserDefault的函数都是静态调用,是不需要创建其对象的,所以下面我们一起来看看CCUserDefault的一
些常用函数。
<1> setBoolForKey(const char * pKey,bool value)
作用:保存一个bool类型数据。
参数1:key。
参数2:value。
<2> setDoubleForKey(const char * pKey,doublevalue)
作用:保存一个double类型数据。
参数1:key。
参数2:value。
<3> setFloatForKey(const char * pKey,float value)
作用:保存一个float类型数据。
参数1:key。
参数2:value。
<4> setIntegerForKey(const char * pKey,int value)
作用:保存一个int类型数据。
参数1:key。
参数2:value。
<5> setStringForKey(const char * pKey,string & value)
作用:保存一个string类型数据。
参数1:key。
参数2:value。
<6> bool getBoolForKey(const char * pKey,bool defaultValue)
作用:获取存储一个bool类型数据。
参数1:key。
参数2:当key对应的数据不存在时,默认返回的值。
<7> bool getDoubleForKey(const char * pKey,double defaultValue)
作用:获取存储一个double类型数据。
参数1:key。
参数2:当key对应的数据不存在时,默认返回的值。
<8> bool getFloatForKey(const char * pKey,float defaultValue)
作用:获取存储一个float类型数据。
参数1:key。
参数2:当key对应的数据不存在时,默认返回的值。
<9> bool getIntegerForKey(const char * pKey,int defaultValue)
作用:获取存储一个int类型数据。
参数1:key。
参数2:当key对应的数据不存在时,默认返回的值。
<10> bool getStringForKey(const char * pKey,string& defaultValue)
作用:获取存储一个string类型数据。
参数1:key。
参数2:当key对应的数据不存在时,默认返回的值。
<11> bool flush()
作用:提交数据,将数据存入文件中。
通过学习CCUserDefault提供的函数后,我们可以看出这些函数的使用方法很简单,但是在使用时需要提醒大家注意两点:
<1> 不论是存储了一个还是多个支持的数据类型后,都必须调用flush()函数,当flush()被调用后,你之前存储的数据
才会真正保存到存储文件中。
<2> 使用CCUserDefault的getXXX函数时,应尽可能传入一个默认值(第2个参数),以免获取到空数据造成程序异
常等。
二、数据存储实例
1、首先新建Cocos2D-X项目,取名为“MyDataSave01”,然后在HelloWorldScene.cpp文件的init函数中添加如下所
示代码。
bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
CCLabelTTF *ttf = CCLabelTTF::create("", "Helvetica", 23);
ttf->setPosition(ccp(240,160));
addChild(ttf);
if(CCUserDefault::sharedUserDefault()->getBoolForKey("bool",false)){
ttf->setString("hava data , start read data");
//Load
bool iBool = CCUserDefault::sharedUserDefault()->getBoolForKey("bool",false);
double iDouble = CCUserDefault::sharedUserDefault()->getDoubleForKey("double",0.0);
float iFloat = CCUserDefault::sharedUserDefault()->getFloatForKey("float",0.0);
int iInt = CCUserDefault::sharedUserDefault()->getIntegerForKey("int",0);
std::string iString = CCUserDefault::sharedUserDefault()->getStringForKey("string","");
}else{
ttf->setString("not hava data , start save data");
CCUserDefault::sharedUserDefault()->setBoolForKey("bool", true);
CCUserDefault::sharedUserDefault()->setDoubleForKey("double", 9.22);
CCUserDefault::sharedUserDefault()->setFloatForKey("float", 8.23);
CCUserDefault::sharedUserDefault()->setIntegerForKey("int", 23);
CCUserDefault::sharedUserDefault()->setStringForKey("string", "Himi");
//提交
CCUserDefault::sharedUserDefault()->flush();
}
bRet = true;
} while (0);
return bRet;
}
2、项目效果图。
<1> 第一次运行项目。
<2> 第二次运行项目。
源码下载地址
分享到:
相关推荐
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
Cocos2D-X开发学习笔记-游戏数据存储项目实例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10857813
Cocos2D-X开发学习笔记-游戏数据存储项目实例(下) 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10946695
资源名称:Cocos2D-X游戏开发技术精解内容简介:Cocos2D-X是一款支持多平台的 2D手机游戏引擎,支持iOS、Android、BlackBerry等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 《Cocos2D-X...
Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...
Cocos2D-X开发学习笔记-按键事件使用示例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10040985
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
自己记录的Cocos2d-x学习笔记,希望能够帮助新手,快速入门,掌握cocos2d-x的开发
精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发
Cocos2D-X开发学习笔记-触屏事件使用示例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10029143
Cocos2D-X开发学习笔记-音乐和音效的使用示例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/10228941
Cocos2D-X开发学习笔记-动作类之基础动作的使用示例(下) 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9840757
《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如何建立跨平台的开发环境;引擎的核心模块——渲染框架;如何实现动态画面和...
Cocos2D-X开发学习笔记-时间调度schedule函数的使用 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9749457
Cocos2d-x 3.x游戏开发实战pdf含目录,内容详细,强烈推荐给大家。
Cocos2D-X开发学习笔记-渲染框架之图形的绘制 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9748001
精通Cocos2d-x游戏开发(进阶卷)源代码 精通Cocos2d-x游戏开发(进阶卷)源代码 精通Cocos2d-x游戏开发(进阶卷)源代码
Cocos2d-x-3.x游戏开发之旅-钟迪龙著 全新pdf版和附书代码(代码为工程文件,可复制) 附带目录标签
cocos2d-x-2.1.5
在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...