因此,我在CodePen上构建了一个Clicker游戏,在编写保存/加载功能时遇到了问题。似乎我的保存功能可能无法正常工作,但我不确定为什么。
以下是这些功能:
function savegame(){
localStorage.clicks = Number(document.getElementById('clicks').innerHTML);
localStorage.cps = document.getElementById('cps').innerHTML;
localStorage.clickPower =
Number(document.getElementById('clickpower').innerHTML);
localStorage.onecpow = Number(document.getElementById('1clickpowe').innerHTML);
localStorage.onecps = Number(document.getElementById('1cps').innerHTML);
localStorage.fivecps = Number(document.getElementById('5cps').innerHTML);
localStorage.fivecpow = Number(document.getElementById('5clickpower').innerHTML);
localStorage.tencps = document.getElementById('10cps').innerHTML;}
function loadgame(){document.getElementById('1clickpower').innerHTML = localStorage.getItem("onecpow");
document.getElementById('clicks').innerHTML = localStorage.getItem("clicks");
document.getElementById('cps').innerHTML = localStorage.getItem('cps');
document.getElementById('clickpower').innerHTML = localStorage.getItem('clickpower');
document.getElementById('5clickpower').innerHTML = localStorage.getItem('fivecpow');
document.getElementById('5cps').innerHTML = localStorage.getItem('fivecps');
document.getElementById('1cps').innerHTML = localStorage.getItem('onecps');
document.getElementById('10cps').innerHTML = localStorage.getItem('tencps');}
我忘了澄清我期望代码做什么。这应该做的是保存播放器的进度和升级,而不是在加载保存的数据时不加载播放器数据,并返回许多应该已加载保存数据的空格。
答案 0 :(得分:2)
代替尝试localStorage.onecpow = "someValue"
storage.setItem(onecpow, "someValue");
您可以在此处查看Storage文档以获取更多信息
答案 1 :(得分:2)
您使用'localStorage'错误。看看这个:
// writing to localStorage
localStorage.setItem('myId', value);
// reading from localStorage
var whatever = localStorage.getItem('myId');
// remove an item from localStorage
localStorage.removeItem('myId');
编辑:
问题是您要混淆两种不同的方法。您必须决定使用哪个。是对象驱动还是键驱动。
我上面的示例是密钥驱动的方法。您还应该能够使用这样的对象驱动方法:
// writing to localStorage
localStorage.myObject = value;
// reading from localStorage
var whatever = localStorage.myObject;
选择样式,但不要混淆。 ; o)
答案 2 :(得分:0)
我找到了解决方案,尽管它的工作方式有点奇怪。
我在localStorage
属性中添加了大写字母,并分别使用了localStorage.setItem
和localStorage.getItem
。不知道为什么会起作用,但是会起作用。