zoukankan      html  css  js  c++  java
  • cocos2d-x 数据存储

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

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

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

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

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

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

    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())

     

     

  • 相关阅读:
    C++ 将对象写入文件 并读取
    IronPython fail to add reference to WebDriver.dll
    How to Capture and Decrypt Lync Server 2010 TLS Traffic Using Microsoft Tools
    .net code injection
    数学系学生应该知道的十个学术网站
    Difference Between Currency Swap and FX Swap
    Swift开源parser
    谈谈我对证券公司一些部门的理解(前、中、后台)[z]
    JDK8记FullGC时候Metaspace内存不会被垃圾回收
    JVM源码分析之JDK8下的僵尸(无法回收)类加载器[z]
  • 原文地址:https://www.cnblogs.com/DswCnblog/p/3679972.html
Copyright © 2011-2022 走看看