博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x 数据存储
阅读量:7085 次
发布时间:2019-06-28

本文共 1379 字,大约阅读时间需要 4 分钟。

  这一章中,我们从一个小小的金币数入手,讨论了数据的话题。我们尽量使用引擎提供的数据存储方法,以最大可能地适应跨平台需求。这里介绍的存储方法本质上都是基于  的,对于 1 MB 以下的存储规模来说,已经完全足够了,而更大型的存储场景在目前的移动游戏中并不常见。在必要的时候,也可以使用  来为数据提速调优。 下面 总结一下本章的重要知识点。

:它是 Cocos2d-x 提供的一个十分便捷的本地存储解决方案。利用  类,可以存取简单的键值数据。

:提供了对本地文件存取的基本功能。与  相比, 更为底层,因此也适合用于存取更加庞大的二进制文件。

:Cocos2d-x 中常见的文件类型,用于存储配置数据或游戏资料。 的优势在于描述性极强,因此易于编辑。

:网络传输中常用的对象描述格式,与 JavaScript 兼容,在广告平台等网络交换数据的情形中十分常见。

:轻量级的关系数据库,用于高速且安全地在本地存储数据。在对性能要求较高时,可以考虑使用  存储数据。

 

CCUserDefault

  正在做项目中有很多游戏数据要保存,常见的玩家数据这些比较简单的可以用CCUserDefault。它是cocos2d-x自带用来存取基本数据类型用的。CCUserDefault并不是加密的保存的信息是明文的,文件格式为XML。Key -Value,key索引Value值;

  提供的存储都是些基础类型,bool,int,string,double,float,方法很容易懂:存储使用set,获取使用get。

void setBool/Integer/Float/Double/StringForKey(const char* pKey, value); void getBool/Integer/Float/Double/StringForKey(const char* pKey, Defalutvalue);

  每一种数据类型的setXXXForkey方法中都有调用写文件步骤,也就是说,每次调用setXXXForKey,就会往文件中写一条记录,当然也可以在写文件末尾调用flush()函数。

使用举例:UserDefault::getInstance()->setStringForKey("name", "dsw");
UserDefault::getInstance()->setIntegerForKey("age", 33); UserDefault::getInstance()->setDoubleForKey("high", 1.71);
UserDefault::getInstance()->setBoolForKey("marign", false);
string ret = CCUserDefault::getInstance()->getStringForKey("name");
CCLOG("name is %s", ret.c_str());

  注:UserDefault提供了默认的文件名(XML_FILE_NAME)和读写路径(FileUtils::getInstance()->getWritablePath())

 

 

转载于:https://www.cnblogs.com/DswCnblog/p/3679972.html

你可能感兴趣的文章
CSS的position设置
查看>>
mysql实战优化之五: 更新/插入优化 sql优化
查看>>
Uber即将进驻扬州啦,车主火热招募中!
查看>>
缓存一致性协议
查看>>
JVM Input Arguments Lookup (JMX)(转)
查看>>
我持续推动Rust语言支持Windows XP系统
查看>>
Http状态码说明
查看>>
浏览器缓存相关http头
查看>>
Autofac.Integration.Owin
查看>>
NGINX反向代理
查看>>
完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小
查看>>
[LeetCode] Sort Characters By Frequency 根据字符出现频率排序
查看>>
lower_bound与upper_bound
查看>>
vue2
查看>>
质量评估面面观--聊一聊软件上线前的质量评估
查看>>
Appfabric caching 使用半年总结
查看>>
20个代码生成框架
查看>>
树莓派3b配置耳机音频输出
查看>>
ES6 Class
查看>>
python -- lambda表达式
查看>>