用于pacman游戏的JavaScript localStorage

时间:2018-10-30 15:34:40

标签: javascript arrays box2d

我正在尝试学习如何将localStorage用于吃豆人游戏。

一个吃豆人的想法是吃一颗颗粒,将其从页面中删除,然后将其添加到localStorage,以便刷新页面以使颗粒消失。

我的问题是只能从键列表中获取最后一个键ID,但是我想要的是一个数组,用于存储所有数字并将其全部取回。

我的代码如下:

for (var j in key_list) {
keyId = key_list[j].GetUserData().val;
stage.removeChild(pacdotsE[keyId]);
world.DestroyBody(key_list[j]);
//console.log(keyId);
localStorage.setItem("key_list",keyId);
}


key_list.length = 0;


function readStorage() {
console.log(localStorage.getItem("key_list"));
keyId = localStorage.getItem("key_list");


}

2 个答案:

答案 0 :(得分:0)

问题在于,在localStorage中,您只编写了最新的keyId。

for (var j in key_list) {
...
localStorage.setItem("key_list",keyId);
}

您可以做的是像这样将数组保存到键的字符串中:

for (var j in key_list) {
...
keyIdArr.push(keyId)
localStorage.setItem("key_list",keyIdArr.toString());
}

答案 1 :(得分:0)

您必须将键提取到数组中,然后将其放入localStorage中。

一种方法是:

localStorage.setItem('key_list', key_list.map(x => x.GetUserData().val))