大家好,我做了一个闯关游戏,我想用官方文档中介绍的存档功能来实现记录玩家闯过的关卡,当玩家再次进入游戏的时候能够从不再游玩上次通关的关卡。我的游戏分为开始界面和地图界面,两个界面之间是不同的场景,玩家进入游戏只能从开始界面切换到地图界面。
我在开始界面先判断读取的存档是否为空,如果不为空就更新关卡数据。源码如下:
var myFestivalCondition=JSON.parse(cc.sys.localStorage.getItem("MyFestivalCondition6"));
if(myFestivalCondition!==null){
cc.log(111);
festivalCondition["YuanXiao"].win=myFestivalCondition.YuanXiao;
festivalCondition["QingMing"].win=myFestivalCondition.QingMing;
festivalCondition["DuanWu"].win=myFestivalCondition.DuanWu;
festivalCondition["QiXi"].win=myFestivalCondition.QiXi;
festivalCondition["ZhongQiu"].win=myFestivalCondition.ZhongQiu;
festivalCondition["ChongYang"].win=myFestivalCondition.ChongYang;
festivalCondition["ChunJie"].win=myFestivalCondition.ChunJie;
}
else{
//cc.log(JSON.parse(cc.sys.localStorage.getItem("MyFestivalCondition5")));
cc.log(222);
}
然后在进入地图界面以后就是更新玩家闯过了多少关,源码如下:
//存档功能
var myFestivalCondition={
YuanXiao:festivalCondition["YuanXiao"].win,
QingMing:festivalCondition["QingMing"].win,
DuanWu:festivalCondition["DuanWu"].win,
QiXi:festivalCondition["QiXi"].win,
ZhongQiu:festivalCondition["ZhongQiu"].win,
ChongYang:festivalCondition["ChongYang"].win,
ChunJie:festivalCondition["ChunJie"].win,
};
cc.sys.localStorage.setItem("MyFestivalCondition6",JSON.stringify(myFestivalCondition));
其中这两段代码中的festivalCondition是一个模板,记录了玩家是否通过了这个关卡,win是布尔值
我的资源文件是腾讯云对象存储来远程加载的。
在打开微信公众平台以后出现了以下报错:
个人认为是微信的json不能解析空对象导致的,不知道说的对不对,回头看上面的代码我已经判断是否为空了,还是报错。各位大佬有没有方法解决这个问题并实现我所说的功能?
补充,在cocos浏览器上是没问题的,但是在微信公众平台上就出错了。
