文档详情

【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上).docx

发布:2017-06-12约3.35千字共6页下载文档
文本预览下载声明
【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上)本系列学习教程使用的是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,double?value)作用:保存一个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 boolgetBoolForKey(const char * pKey,booldefaultValue)作用:获取存储一个bool类型数据。参数1:key。参数2:当key对应的数据不存在时,默认返回的值。?7 boolgetDoubleForKey(const char * pKey,doubledefaultValue)作用:获取存储一个double类型数据。参数1:key。参数2:当key对应的数据不存在时,默认返回的值。?8 boolgetFloatForKey(const char * pKey,floatdefaultValue)作用:获取存储一个float类型数据。参数1:key。参数2:当key对应的数据不存在时,默认返回的值。?9 boolgetIntegerForKey(const char * pKey,intdefaultValue)作用:获取存储一个int类型数据。参数1:key。参数2:当key对应的数据不存在时,默认返回的值。?10 boolgetStringForKey(const char * pKey,string? defaultValue)作用:获取存储一个string类型数据。参数1:key。参数2:当key对应的数据不存在时,默认返回的值。?11 boolflush()作用:提交数据,将数据存入文件中。??通过学习CCUserDefault提供的函数后,我们可以看出这些函数的使用方法很简单,但是在使用时需要提醒大家注意两点:1 不论是存储了一个还是多个支持的数据类型后,都必须调用flush()函数,当flush()被调用后,你之前存储的数据才会真正保存到存储文件中。2 使用CCUserDefault的getXXX函数时,应尽可能传入一个默认值(第2个参数),以免获取到空数据造成程序异常等。二、数据存储实例1、首先新建Cocos2D-X项目,取名为“MyDataSave01”,然后在HelloWorldScene.cpp文件的init函数中添加如下所示代码。[cpp]?view plain?copybool?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::sharedUserDe
显示全部
相似文档