首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操纵localStorage?

操纵localStorage?
EN

Stack Overflow用户
提问于 2017-12-04 08:03:57
回答 0查看 473关注 0票数 0

假设我有一个类似下面的javascript对象:

代码语言:javascript
复制
var Upgrades = {
     upgrade1: {
          name: 'First Upgrade',
          info: 'First Upgrades info',
          level: 1,
          cost: 10,
     },
     upgrade2: {
          name: 'Second Upgrade',
          info: 'Second Upgrades info',
          level: 1,
          cost:  200,
     },
     upgrade3: {
          name: 'Second Upgrade',
          info: 'Second Upgrades info',
          level: 1,
          cost: 4000,
     },
};

现在,将其保存到localStorage中将是一件轻而易举的事情。

代码语言:javascript
复制
localStorage.setItem('Upgrades', JSON.stringify(Upgrades));

问题是每次升级我只需要保存关卡的值。保存整个对象会带来一些问题,其中一些问题是:

-If我想要更改对象中的名称/信息,我必须删除保存的本地存储文件,因为每次玩家进入游戏时,它都会用旧的、存储的名称/信息覆盖升级对象。

由于某些原因,-Adding更多的东西(升级)也会导致游戏崩溃,我不太确定原因。每当我添加更多的升级到对象,我必须再次删除保存的文件,以便播放,从开始

(或者更改保存的文件,如果它与当前对象不同,这样它就可以正确地应用保存,但我不知道该怎么做。这听起来也有点脏,因为我猜你必须检查对象的游戏版本是否相同,如果不是,就编辑它,使其与当前的版本对象相对应。

对象中的所有内容都是按级别计算的(字符串除外)。这就是为什么我只需要保存等级的原因。

我该如何操作本地存储?我想循环所有的升级,并将每个级别的值保存到不同的localStorage中。所以upgrade1,2和3的localStorage只包含'level: x‘。然后相同的循环,当玩家开始游戏时,应用保存的级别。但是我能用一个localStorage文件做到这一点吗?用上面的例子做这件事会不会很糟糕,为什么?还有更好的办法吗?

谢谢!

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47624702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档