【Cocos Creator实战教程(12)】——存储与读取数据

1. 相关知识点

我们在游戏中通常需要存储用户数据,如音乐开关、显示语言等,如果是单机游戏还需要存储玩家存档。 Cocos Creator 中我们使用 cc.sys.localStorage 接口来进行用户数据存储和读取的操作。

1.1 存储数据

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

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

假如我们要保存玩家持有的金钱数,假设键值为 gold:

 
  1. cc.sys.localStorage.setItem('gold', 100);

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

 
  1. userData = {
  2. name: 'Tracer',
  3. level: 1,
  4. gold: 100
  5. };
  6.  
  7. cc.sys.localStorage.setItem('userData', JSON.stringify(userData));

1.2 读取数据

 
  1. cc.sys.localStorage.getItem(key)

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

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

1.3 移除键值对

当我们不再需要一个存储条目时,可以通过下面的接口将其移除:

 
  1. cc.sys.localStorage.removeItem(key)

1.4 数据加密

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

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

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

读取时:

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

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

2. 步骤

2.1 存储数据

 
  1. cc.sys.localStorage.setItem('bestRunScore', this.bestRunScore);
  2. cc.sys.localStorage.setItem('bestJumpScore', this.bestJumpScore);

2.2 读取数据

 
  1. cc.sys.localStorage.getItem("bestRunScore");
  2. cc.sys.localStorage.getItem("bestJumpScore");

就是两个封装的方法,存储的方式是键值对

2.3 Menu脚本也需要修改一下

Menu.js

 
  1. ...
  2. onLoad: function () {
  3. this.record = cc.find("Record").getComponent("Record");
  4. this.runScore.string = "你最远跑了" + this.record.bestRunScore+ "m";
  5. this.jumpScore.string = "你最高跳了" + this.record.bestJumpScore+ "m";
  6. ...
  7. },
  8. ...

3. 总结

在现实生活中,我们经常重要数据传回服务器,而一些不重要数据则存储在本地。而且现在json数据格式很普遍,php等都可以使用json。

本教程部分素材来源于网络。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值