Cocos2d-x教程(9)-简单的数据存储,CCUserDefault

本文介绍了Cocos2d-x游戏开发中如何使用CCUserDefault进行简单数据存储,主要用于记录用户状态。CCUserDefault将数据保存到XML文件,适用于小量数据存储,不适用于复杂数据或大量数据。文章通过实例展示了如何保存和读取数据,并指出了其局限性,如无数据类型安全和易被篡改等。
摘要由CSDN通过智能技术生成

        转载时请注明原文出处 http://blog.csdn.net/u012945598

        源码下载地址:http://download.csdn.net/download/u012945598/6654587

        保存数据是一款游戏中必不可少的功能,保存数据的方式有很多种,今天我们来学习一下Cocos2d-x提供的CCUserDefault。

        首先 CCUserDefault只使用于存储一些简单的数据,它是将我们的数据保存到一个XML文件中。比如当我们下载了某一款软件,在第一次使用该软件的时候会有一个操作指南的画面,但是当我们退出程序再次进入的时候这个新手指南画面便不会再显示了,对于这个功能的实现我们就可以用到CCUserDefault,当用户没有使用过这个软件的时候我们从XML文件中获取出来的是一个默认值,所以会执行新手指南画面,当用户第一次使用了该软件之后,我们将这个默认值修改一下,当再次使用该软件值读取出来的便是我们修改过的值,此时便会直接进入游戏画面,不会再次执行新手指南画面了。

       而我们只用CCUserDefault实现一些简单数据存储的原因是,CCUserDfault自身有很多缺陷,无法满足我们大量保存数据的需求。

1.CCUserDefault没有类似于表的东西,所以如果你想用CCUserDefault实现一个存档的功能,你需要自己去将它写出来,这会是一个很复杂的过程。

2.CCUserDefault会讲我们的数据保存到XML文件中,这是一个明文的数据,如果有人想要篡改文件,直接修改数据即可,而且你还不知道什么时间谁把数据修改了。当然了如果有能力的可以自己增加校验,不过这又是一个比较麻烦的过程。

3.没有数据类型安全,如果你把一个字符串类型错写成了整型,是不会有错误提示的。

       所以说,如果要保存一些比较复杂的数据,还是需要使用数据库,CCUserDefault只用于保存一些简单的数据。

       下面我们来看一下CCUserDefault类中提供的方法:

        

下面我们来写一个例子,创建一个项目命名为 SaveData,创建一个新的C++文件命名为judge,.h文件代码如下:


.cpp文件代码如下:

完成上述操作后,在HelloWorld的init()函数中加入下列代码:


运行项目,此时运行项目会输出 first run,停止程序后再运行,将会输出not first run。以后运行时也将会输出not first run,因为数据已经保存到文件中。除非将程序从模拟器中删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(译)cocos2d里面如何用texture picker和像素格式来优化spritesheet.pdf (译)在cocos2d里如何制作各种按钮.pdf (译)如何使用cocos2d制作基于tilemap的游戏教程 第一部分.pdf (译)如何在cocos2d里面使用动画和spritesheet.pdf (译)如何用cocos2d制作iphone游戏:旋转炮塔.pdf (译)如何用cocos2d制作iphone游戏:更猛的怪物和更多得管卡.pdf (译)如何使用cocos2d制作一个Slide Image Game:第一部分.pdf (译)如何使用cocos2d来制作一个塔防游戏:第一部分.pdf cocos2d 2.0 添加遮罩.pdf iOS Code Signing解惑.pdf iPhone上面的现实增强(Augmented Reality)入门教程.pdf OpenGL ES2.0 – Iphone开发指引.pdf OpenGLES2.0 Iphone开发指引:第二部分,纹理贴图.pdf 使用cocos2d和box2d制作滚动背景.pdf 加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分.pdf 在cocos2d里面如何使用物理引擎box2d:弹球.pdf 在cocos2d里面如何拖拽精灵.pdf 如何使用box2d来做碰撞检测(且仅用来做碰撞检测).pdf 如何使用CCRenderTexture来创建动态纹理.pdf 如何使用cocos2d1.0来给sprite添加Mask(遮罩).pdf 如何使用cocos2d制作一个塔防游戏:引子.pdf 如何使用cocos2d制作一个太空射击游戏.pdf 如何使用cocos2d制作一个打地鼠的游戏:(第二部分。完).pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分.pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第二部分(完).pdf 如何使用cocos2d来制作一个打地鼠的游戏:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第二部分.pdf 如何使用NSCoding和NSFileManager来保存你的应用程序数据.pdf 如何制作一个类似tiny wings的游戏:第一部分.pdf 如何制作一个类似tiny wings的游戏:第二部分(完).pdf 如何升级你的cocos2d版本.pdf 如何学好Iphone开发.pdf 如何查找资料.pdf 碰撞检测和收集物品:如何使用cocos2d制作基于tiled地图的游戏:第二部分.pdf (译)cocos2d精灵教程:第一部分.pdf (译)cocos2d精灵教程:第三部分.pdf (译)cocos2d精灵教程:第二部分.pdf (译)cocos2d菜单教程:第一部分.pdf (译)cocos2d菜单教程:第三部分(完).pdf (译)cocos2d菜单教程:第二部分.pdf (译)使用cocos2d和box2d来制作一个platformer游戏.pdf (译)如何使用cocos2d制作一个塔防游戏:第三部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第二部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第四部分(完).pdf (译)如何使用cocos2d制作一个滑动图片游戏教程:第二部分(完).pdf (译)如何用cocos2d制作一款简单的iphone游戏(第一部分).pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值