无法使用HTML5 Web存储保存布尔值的解决方法

时间:2013-12-12 01:57:42

标签: javascript html5 web-storage craftyjs

我目前正在使用Javascript或更确切地说是CraftyJS进行马里奥式游戏。

我看了here作为参考, 并了解如何保存用户输入的值。 但我想要实现的是自动保存某些布尔值(就是它们被称为?),或者当玩家按下保存按钮或其他东西时。

例如,我有一个名为dungeon1的地牢,我创建了一个变量来表示地下城是否已经完成。

默认情况下为var dungeon1 = false;

但是当玩家完成dungeon1时,它会变为var dungeon1 = true;, 导致世界地图的新增加,例如dungeon2的入口(这很好)。

我要保存的是这个var dungeon1 = true;声明,这样当用户再次打开游戏时,将加载已完成的地下城并正确显示相应的解锁。我该怎么办? 有没有办法说,创建一个名为save.js的保存管理文件,然后在它们成为true后存储上面的布尔值?

1 个答案:

答案 0 :(得分:0)

您只需存储所需布尔值的字符串版本。

因此存储“true”和“false”,而不是像if(变量)一样检查,你必须以if(变量===“true”)的形式检查。它有点令人讨厌,但你可以看到它并没有真正为你的代码增加更多的复杂性。

如果这种类型的if检查只是冒犯了你的敏感度,那么在你从localStorage“获取”它的代码中,你可以将它重新设置为布尔值。

var bool = (localStorage.getItem("myItem") === "true")

PS。你可以使用布尔值设置setItem ...它只会将它们转换为字符串:D因为大多数事情它调用toString()来存储它们,如果它们不是字符串的话。

所以你可以这样做:

enter code here localStorage.setItem(“myItem”,true)