cocos2dX 之数据存储
今天我们来看cocos2dX里面的数据存储类, CCUserDefault, 现在的游戏基本都会把用户信息保存下来, 以便于再次进入游戏的时候读取, 为了方便起见,有时我们也可以用CCUserDefault来存储金币数目这种简单的数据项, 当然, 大型数据还是建议使用数据库
闲话不多说, 我们来看看cocos2dX为我们准备了哪些函数:
setBoolForKey( 键值, 值); //设置一个bool值
setStringForKey( 键值, 值); //设置一个string值
setDoubleForKey( 键值, 值); //设置一个double值
setFloatForKey( 键值, 值); //设置一个float值
setIntegerForKey( 键值, 值); //设置一个int值
getBoolForKey( 键值); //读取一个bool值
getStringForKey( 键值); //读取一个string值
getDoubleForKey( 键值);//读取一个double值
getFloatForKey( 键值); //读取一个float值
getIntegerForKey( 键值); //读取一个int值
getBoolForKey( 键值, 默认值); //读取一个bool值
getStringForKey( 键值, 默认值); //读取一个string值
getDoubleForKey( 键值, 默认值);//读取一个double值
getFloatForKey( 键值, 默认值); //读取一个float值
getIntegerForKey( 键值, 默认值); //读取一个int值
flush(); //保存到文件
话说函数也不是很多啊, 五种类型, set写入, get取出, 很明显的哈希表结构, Key-Valua, Key索引Value的值,
我们先来来写写代码:
CCLabelTTF* ttf = CCLabelTTF::create( "null", "Arial", 32); ttf->setPosition( ccp( visibleSize.width / 2, visibleSize.height / 2)); addChild( ttf, 0, 101); if ( CCUserDefault::sharedUserDefault()->getBoolForKey( "flag", false)) { //有数据 std::string str = CCUserDefault::sharedUserDefault()->getStringForKey( "str", "null"); //取出string ttf->setString( str.c_str()); //将字符串的标题设为str } else { //没有数据 CCUserDefault::sharedUserDefault()->setStringForKey( "str", "now, hava data"); //写入字符串 CCUserDefault::sharedUserDefault()->setBoolForKey( "flag", true); //写入bool CCUserDefault::sharedUserDefault()->flush(); //将数据存入xml里面, 不过现在貌似可以不加也可以 }
我们来看看第一次运行的效果:
第二次运行:
我们再到项目里面的Debug.win32下面看看, 是不是多了一个UserDefault.xml
我们打开这个文件看看:
很熟悉吧, 有两个数据:
key: str
相关新闻>>
- 发表评论
-
- 最新评论 更多>>