cocos2d-html5开发之本地数据存储
做游戏时常常须要的一个功能呢就是数据的保存了,比方游戏最高分、得到的金币数、物品的数量等等。cocos2d-html5使用了html5。所以html5的数据保存方法是对引擎可用的;
html5本地数据存储是使用js对数据进行操作,html5 对数据的存储提供了两个方法:
sessionStorage - 仅仅对本次会话保留数据
localStorage - 长时间保留数据
关于这个sessionStorage仅仅在浏览器打开进行会话时可用。在游戏中没有測试,使用方法是和localStorage方法同样的,仅仅是对数据保存的时间上不同;
当中localStorage 方法 对保留的数据没有时间限制。除非用户手动清理数据,也是我在游戏中经常使用的方法;
对数据的存储最经常使用的就是 getItem('',''); 和setItem('','');这两个方法。
由此可见本地存储数据的方法非常easy,就是简单的设置键(key)值(value)对。以及依据键(key)获取保存的值(value);
另一点须要注意的就是 html5本地数据存储,仅仅能保存字符串数据,不管你保存什么都会自己主动转换为字符串,所以假设要保存其它类型的数据的时候,要记得进行数据转换。
这里我写一个保存和读取json数据的样例:
//这是一个保存娃娃数量的json数据
dollNum = {Aries: 0, Taurus: 0, Gemini: 0, Cancer: 0, Leo: 0, Virgo: 0, Libra: 0, Scorpius: 0, Sagittarius: 0, Capricornus: 0, Aquarius: 0, Pisces: 0};
/**
* 保存Doll数量,要保存json数据的时候。须要使用JSON.stringify();方法将JSON转化为字符串
*/
function saveDollNum(){
var tempDollNum = JSON.stringify(dollNum);
sys.localStorage.setItem("dollNum", tempDollNum);
} /**
* 载入Doll数量 和 keys;然后再读取过后,须要用JSON.parse();方法将字符串转化为JSON
*/
function loadDollNum() {
var tempDollNum = sys.localStorage.getItem("dollNum"); if(tempDollNum == null || tempDollNum == ""){
saveDollNum();
cc.log("default dollNum " + dollNum);
}else{
tempDollNum = sys.localStorage.getItem("dollNum");
cc.log("get dollNum " + tempDollNum);
}
//将字符串转化为json
tempDollNum = JSON.parse(tempDollNum);
}
这样就能够一次保存多个数据。而且操作起来也方便
OK 数据存储介绍完了,很多其它精彩在我的个人原创博客网站:Melove 我爱 http://www.melove.net
cocos2d-html5开发之本地数据存储的更多相关文章
- 渐进式web应用开发---ajax本地数据存储(四)
在前几篇文章中,我们使用service worker一步步优化了我们的页面,现在我们学习使用我们之前的indexedDB, 来缓存我们的ajax请求,第一次访问页面的时候,我们请求ajax,当我们继续 ...
- iOS开发:本地数据存储-NSUserDefaults
Getting Default Values arrayForKey(_:) boolForKey(_:) dataForKey(_:) dictionaryForKey(_:) floatForKe ...
- Windows 8 应用开发 - 本地数据存储
原文:Windows 8 应用开发 - 本地数据存储 在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据.下 ...
- iOS开发技术分享(1)— iOS本地数据存储
iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...
- iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储
使用NSUserDefaults来进行本地数据存储 NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首 ...
- iOS APP之本地数据存储(译)
最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application secur ...
- Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库
版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...
- Android本地数据存储复习
Android本地数据存储复习 Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数 ...
- 浏览器本地数据存储解决方案以及cookie的坑
本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...
随机推荐
- mysql使用出现错误:mysqld dead but subsys locked
现象: 登陆时候出现如下信息 [root@localhost home]# mysql -uroot -p123456mysql: [Warning] Using a password on the ...
- 关于linux下的.a文件与 .so 文件
连续几天终于将一个又一个问题解决了,这里说其中一个问题 描述问题:使用多线程pthread的时候,(我用的IDE,CODEBOLCKS)编译后发现直接弹出窗口,程序还没有被Build..巴拉巴拉,然后 ...
- 【转】DOS与linux的断行字符
转自:http://www.2cto.com/os/201109/104833.html 今天配置linux的dns服务器,在配置的时候,在linux下修改配置文件感觉很麻烦,于是想到把配置文件拿到w ...
- layer实现在前台删除前确认弹出框,并回调后台删除事件
最近遇到一些问题,用layer提示消息框,比如删除时,提示消息确定后 return false时,则不管用了,因为layer不支持阻塞,下面就解决一下这个问题:(本文使用Xcode,如要学习,请复下面 ...
- 单例模式在多线程环境下的lazy模式为什么要加两个if(instance==null)
刚才在看阿寻的博客”C#设计模式学习笔记-单例模式“时,发现了评论里有几个人在问单例模式在多线程环境下为什么lazy模式要加两个if进行判断,评论中的一个哥们剑过不留痕,给他们写了一个demo来告诉他 ...
- html——表单控件
基本的表单控件还有html5的一些新的表单控件: <!DOCTYPE html> <html> <head> <meta charset="utf- ...
- [Windows Server 2012] Discuz X3安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★[护卫神·V课堂]是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Discu ...
- 06--ubuntu的sqlite安装
知道学习嵌入式技术,数据库是必须懂的,看的书上嵌入式的教程都在用,看来我是非学不可了,下面就简单的记录一下我在Ubuntu 12.04系统上安装 SQLite 的过程以及使用. 相关阅读: SQLit ...
- Nginx 监控
编译安装加上http_stub_status_module 模块 location /status { stub_status on; # access_log /usr/local/nginx/lo ...
- PHP 之二位数组根据某个字段排序封装
/** * @param $array * @param $keys * @param string $sort * @return array */ function arraySort($arra ...