在游戏开发过程中,如果能将游戏数据保存在起来,当下次进入
游戏时该数据任然存在;
就像一般游戏保存游戏进度一样,对开发和测试都是很方便的,
特别是对于客户端不会服务器又想实现服务器端效果的开发者;
这里简要介绍CocosCreator开发中的本地数据存取
(sys.localStorage):
存储数据:cc.sys.localStorage.setItem(“key”,”value”)
获取数据:cc.sys.localStorage.getItem(“key”)
移除数据:cc.sys.localStorage.removeItem(“key”)
清除所有:cc.sys.localStorage.clear()
Demo1=>存储本地数据:
//分数写到本地( 当前分 最高分 历史记录)
updateScore: function() {
var currentScore =
this.scoreDisplay.string;
var scoreData = {
'score':currentScore,
'time': D.common.timeFmt(new Date(),'yyyy-MM-dd hh:mm:ss'),
};
var preData = cc.sys.localStorage.getItem('score');
var preTopScore = cc.sys.localStorage.getItem('topScore');
if (!preTopScore || parseInt(preTopScore) < parseInt(currentScore)){
cc.sys.localStorage.setItem('topScore', currentScore);
}
if(!preData){
preData = [];
preData.unshift(scoreData);
} else {
preData = JSON.parse(preData);
if (!(preData
instanceof Array)){
preData = [];
}
preData.unshift(scoreData);
}
cc.sys.localStorage.setItem('currentScore', currentScore);
cc.sys.localStorage.setItem('score', JSON.stringify(preData));
},
Demo2=>模仿UserDefault实现数据封装:
var LocalManager = {
setBool:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value.toString())
},
getBool:function(_key){
return cc.sys.localStorage.getItem(_key) ==
"false" ? false :
true
},
setInt:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value.toString())
},
getInt:function(_key){
return Number(cc.sys.localStorage.getItem(_key))
},
setString:function(_key,_value){
cc.sys.localStorage.setItem(_key,_value)
},
getString:function(_key){
return cc.sys.localStorage.getItem(_key)
},
setObject:function(_key,_value){
cc.sys.localStorage.setItem(_key,JSON.stringify(_value))
},
getObject:function(_key){
return JSON.parse(cc.sys.localStorage.getItem(_key))
},
},
Demo3=>流程参考:
var BaseLocalData = {};
/*
* 写入数据,将数据存储在本地
* @param jsonName:json文件名字
*/
var baseData = [{a:1},{b:2},{c:3},{d:4},{e:5},{f:6},{g:7}];
BaseLocalData.setItem = function(jsonName)
{
var baseData = JSON.stringify(jsonName);
sys.localStorage.setItem("baseData", baseData);
};
/*
* 读取基础数据
* 还回json格式数据
*/
BaseLocalData.getItem = function()
{
var baseData1 = JSON.stringify(baseData);
//将json格式转换成string
sys.localStorage.setItem("baseData", baseData1);
//将数据存储在本地
var baseDataa = sys.localStorage.getItem("baseData");
//从本地读取数据
baseDataa = JSON.parse(baseDataa); //将string转换成json
return baseDataa;
};
/*
* 删除数据
*/
BaseLocalData.deleteItem = function()
{
sys.localStorage.removeItem("baseData");
};

本文介绍了CocosCreator中使用localStorage进行本地数据存储的方法,包括存储、获取、移除和清除所有数据的详细操作,并提供了相关Demo示例,帮助开发者实现类似服务器端效果的本地数据管理。

583

被折叠的 条评论
为什么被折叠?



