我想为我的成就类中的一个值实现 localStorage。所以基本上这个类所做的就是从后端数据库中获取玩家数据,如果玩家清除某些任务,成就就会被解锁。目前我只有 1 项成就,定义如下
成就:{ 1:{name:'First_Achievement',status:1} },
状态字段就像我的成就的标志。如果状态为 1,则成就仍被锁定,如果状态为 0,则成就被解锁。
这是我的成就解锁时的骨架代码。我的游戏中每 10 秒检查一次此代码块,以查看是否清除了某个任务以解锁成就
checkAchievements:function(){
this.probsSolved = this.getTeamProbSolved();
if( this.Achievements[1].status == 1 && this.probsSolved.length >=3)
this.triggerAchievement(1); // spawns achievement 1 on screen
this.Achievements[1].status = 0;
},
所以当我运行游戏时这很好用。“this.Achievements[1].status”设置为 0,直到我下次再次开始游戏。它将“this.Achievements[1].status”设置回 1,并且 if 循环再次运行,因为状态设置回 1,这是我不想要的,因为很明显我希望我的成就只产生或显示一次,并且不是每次我运行游戏。
那么如何在这里实现 localStorage 呢?我想我需要将我的“Achievements.status”字段存储在 localStorage 中,以便 if 循环只运行一次,而不是每次都运行。或者还有其他方法可以实现吗?
我尝试了以下
localStorage.setItem(this.Achievements[1].status,0);
但它不起作用
任何帮助,将不胜感激!谢谢!