zoukankan      html  css  js  c++  java
  • Cocos Creator存储和读取用户数据--官方文档

    存储数据

    cc.sys.localStorage.setItem(key, value)

    上面的方法需要两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value

    假如我们要保存玩家最高分,假设键值为 score:cc.sys.localStorage.setItem('score', 0);

    复杂的对象数据,我们可以通过将对象序列化为 JSON 后保存:

    Data = {
        name: 'Tracer',
        level: 1,
        gold: 100
    };
     
    cc.sys.localStorage.setItem('Data', JSON.stringify(Data));
    

     

    读取数据

    cc.sys.localStorage.getItem(key)

    和 setItem 相对应,getItem 方法只要一个键值参数就可以取出我们之前保存的值了。对于上文中储存的用户数据:

     

    var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));

    移除键值对

    移除:cc.sys.localStorage.removeItem(key)

    数据加密

    对于单机游戏来说,对玩家存档进行加密可以延缓游戏被破解的时间。要加密存储数据,只要在将数据通过JSON.stringify 转化为字符串后调用你选中的加密算法进行处理,再将加密结果传入 setItem 接口即可。

    您可以搜索并选择一个适用的加密算法和第三方库,比如 encryptjs,将下载好的库文件放入你的项目,存储时:

    var encrypt=require('encryptjs');
    var secretkey= 'open_sesame'; // 加密密钥
     
    var dataString = JSON.stringify(userData);
    var encrypted = encrypt.encrypt(dataString,secretkey,256);
     
    cc.sys.localStorage.setItem('userData', encrypted);

    读取:

    var cipherText = cc.sys.localStorage.getItem('userData');
    var userData=JSON.parse(encrypt.decrypt(cipherText,secretkey,256));

    注意 数据加密不能保证对用户档案的完全掌控,如果您需要确保游戏存档不被破解,请使用服务器进行数据存取。

  • 相关阅读:
    ELK+Kafka集群日志分析系统
    Centos 6.5 部署 redmine 3.3
    Centos 6.5 搭建l2tp 服务端和客户端
    Logstash之multiline 插件
    MYSQL MHA
    windows上给yii2安装插件
    YII2框架的安装
    Apache服务器配置项和虚拟机配置
    浮点数的比较
    微信自定义菜单总结
  • 原文地址:https://www.cnblogs.com/allyh/p/9839762.html
Copyright © 2011-2022 走看看