JavaScript 用于吃豆子游戏的 localStorage

JavaScript localStorage for pacman game

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

这个想法是一个 pacman 吃了一个小球,然后将其从页面中删除并将其添加到 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");


}

问题是在 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());
}

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

一种方法是:

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