假设我有一个类似下面的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中将是一件轻而易举的事情。
localStorage.setItem('Upgrades', JSON.stringify(Upgrades));问题是每次升级我只需要保存关卡的值。保存整个对象会带来一些问题,其中一些问题是:
-If我想要更改对象中的名称/信息,我必须删除保存的本地存储文件,因为每次玩家进入游戏时,它都会用旧的、存储的名称/信息覆盖升级对象。
由于某些原因,-Adding更多的东西(升级)也会导致游戏崩溃,我不太确定原因。每当我添加更多的升级到对象,我必须再次删除保存的文件,以便播放,从开始
(或者更改保存的文件,如果它与当前对象不同,这样它就可以正确地应用保存,但我不知道该怎么做。这听起来也有点脏,因为我猜你必须检查对象的游戏版本是否相同,如果不是,就编辑它,使其与当前的版本对象相对应。
对象中的所有内容都是按级别计算的(字符串除外)。这就是为什么我只需要保存等级的原因。
我该如何操作本地存储?我想循环所有的升级,并将每个级别的值保存到不同的localStorage中。所以upgrade1,2和3的localStorage只包含'level: x‘。然后相同的循环,当玩家开始游戏时,应用保存的级别。但是我能用一个localStorage文件做到这一点吗?用上面的例子做这件事会不会很糟糕,为什么?还有更好的办法吗?
谢谢!
https://stackoverflow.com/questions/47624702
复制相似问题