做游戏时常常须要的一个功能呢就是数据的保存了,比方游戏最高分、得到的金币数、物品的数量等等。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开发之本地数据存储的更多相关文章

  1. 渐进式web应用开发---ajax本地数据存储(四)

    在前几篇文章中,我们使用service worker一步步优化了我们的页面,现在我们学习使用我们之前的indexedDB, 来缓存我们的ajax请求,第一次访问页面的时候,我们请求ajax,当我们继续 ...

  2. iOS开发:本地数据存储-NSUserDefaults

    Getting Default Values arrayForKey(_:) boolForKey(_:) dataForKey(_:) dictionaryForKey(_:) floatForKe ...

  3. Windows 8 应用开发 - 本地数据存储

    原文:Windows 8 应用开发 - 本地数据存储      在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据.下 ...

  4. iOS开发技术分享(1)— iOS本地数据存储

    iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...

  5. iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储

    使用NSUserDefaults来进行本地数据存储   NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首 ...

  6. iOS APP之本地数据存储(译)

    最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application secur ...

  7. Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库

    版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...

  8. Android本地数据存储复习

    Android本地数据存储复习 Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数 ...

  9. 浏览器本地数据存储解决方案以及cookie的坑

    本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...

随机推荐

  1. IIS 503 错误

    今天早上乘公交的时候,网站运维群里直接炸了,网站打不开,503错误.然后就各种@我,吓得我手机都要扔了,然后马不停蹄的赶往公司去查看错误. 我首先在IIS上浏览网页,想试图在服务器上显现出详细错误,这 ...

  2. Product Device Lot

    Product是指产品: 这个Product可以在不同的设备类型上生产, 同一类型的设备也可能硬件有差异,所以会有相对应的Device(Recipe): 同一Product(或同一Device)由于数 ...

  3. Raspberry Pi开发之旅-光照强度检测(BH1750)

    一.前期准备 1.环境要求 GY30模块(BH1750FVI传感器),树莓派系统,python-smbus,iic开启 2.取消对IIC驱动的黑名单 nano /etc/modprobe.d/rasp ...

  4. SQLServer 异常捕获,回滚,再抛出

    一个存储过程中多个更新操作,后面的更新操作出现异常,如果不手动回滚前面修改的数据是不会自动撤销的! BEGIN TRY BEGIN TRAN -- ..... COMMIT TRAN END TRY ...

  5. 2016.01.22 前端学习 HTML/CSS

    学习HTML/CSS  http://edu.51cto.com/course/course_id-3116.html 明日实践

  6. How an SSL connection is established

    An SSL connection between a client and server is set up by a handshake, the goals of which are: To s ...

  7. windows 设置注册表服务自动启动

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\xxx\Start = ,=自动,,=禁用

  8. excel 类获取起始列和使用列

    m_excel.OpenWorkBook(sFileName, sSheetDrawingList); // Get drawing info int iStartRow = 0, iStartCol ...

  9. css中有些属性的前面会加上“*”或“_(兼容IE浏览器)

    给不同浏览器识别: color{ background-color: #CC00FF; /*所有浏览器都会显示为紫色*/ background-color: #FF0000\9; /*IE6.IE7. ...

  10. vue04 组件化开发 Vue自动化工具

    5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...