做游戏时常常须要的一个功能呢就是数据的保存了,比方游戏最高分、得到的金币数、物品的数量等等。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. 题解报告:hdu 1213 How Many Tables

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 Problem Description Today is Ignatius' birthday. ...

  2. Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx

    webview开发,在Android4.4下js调用java方法报错"Uncaught TypeError: Object [object Object] has no method,同样的 ...

  3. 《Java编程的逻辑》第四部分 文件

  4. The type new View.OnClickListener(){} must implement the inherited abstract method View.Onclicklis

    public class MainActivity extends Activity { protected Button startBrew = null; @Override protected ...

  5. pycuda installation error: command 'gcc' failed with exit status 1

    原文:python采坑之路 Setup script exited with error: command 'gcc' failed with exit status 1 伴随出现"cuda ...

  6. python os os.path模块学习笔记

    #!/usr/bin/env python #coding=utf-8 import os #创建目录 os.mkdir(r'C:\Users\Silence\Desktop\python') #删除 ...

  7. java_File对象

    package File; import java.io.File; import java.io.IOException; public class file { public static voi ...

  8. @viewChild

    https://www.cnblogs.com/mttcug/p/8004359.html

  9. 在Unity中对注册表的信息进行操作

      问题1 在对注册表进行操作时无法生成注册表相关的类  解决办法:     增加头文件using Microsft.Win32; 问题2                    在运行程序时报错同时注 ...

  10. bootstrap table 生成的表格里动态添加HTML元素按钮,JS中添加点击事件,点击没反应---解决办法

    bootstraptable中onExpandRow属性---js  方法添加的 html代码,然后给这代码里面的 元素 添加 事件,却获取不该元素.(称之为未来元素),由于是未来的 所以现在没有这个 ...