2017-05-25 64 views
0

我一直在努力几个小时如何找到我的JavaScript代码的解决方案,但我发现了很多不同的例子,但他们没有一个似乎与我的代码工作。重新加载原始的js代码后保存变量

我知道我想使用这些变量,目前在我的代码中,这里是变量。

var isInGame = 0; // Not playing yet 

var money  = 0; // Our cash 

var North = ""; 

var South = ""; 

var East = ""; 

var West = ""; 

var hasArmour = 0; // current does not own Armour 

var hasWater = 0, hasSword = 0; // currently uncrowned  variable changes during game play. 

我知道我需要沿着

的LoadVars线做一些事情 - >从存储设备读取变量 - >将其设置为变量 - >开始游戏

,但我无法弄清楚。在最后放弃之前,我研究了好几个小时,然后决定寻求帮助。

我尝试使用HTML5的localStorage但无法弄清楚,我是在假设负载从饼干瓦尔不好

它使用getElementID所以它已经困惑如何在同一保存瓦尔但重装他们当用户回到我的网站并再次播放时。

它使用纯JavaScript/HTML5/CSS。

任何帮助将不胜感激。

+0

你试过'localStorage.setItem(itemX,valueofItemX)'吗?请记住'valueofItem'保存为一个字符串,并且''localstorage'也没有太多空间可能考虑使用数据库/ AJAX/PHP – Lixus

+0

我的代码是在大约2814行的java脚本代码中,因此重写它一切都会很困难。我需要一种方法来保存说VAR货币,并保存每一次金钱添加到它例如金钱+金钱=价格varrable;然后钱被添加客户端,所以我不知道如果我不能这样做,但我想问; 3 – s0l4rs7o4m

+0

什么是具体问题?你从服务器端获取值吗?如果是的话,你需要把它们寄回来吗?你有什么问题与本地存储? –

回答

0

如果你想使用localStorage的保存你的价值观,它是那样简单

localStorage.setItem('money', money); 

以后,你可以找回作为

var money = localStorage.getItem('money'); 

请记住,你只有10MB本地存储空间的每个来源使用,并且所有值将被存储为字符串。

+0

好吧,我接受了你的建议,但我碰到了另一个问题,但我认为它现在将工作,感谢您的帮助 – s0l4rs7o4m

0

有这个文件一看:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API

如果我是你,我会保持整场比赛状态,在某种物体(或合并为保存前的对象),然后只把它变成字符串表示/尝试加载状态时执行反向操作。

let gameLogic = { 
    meta: { 
    inGame: false, 
    }, 
    directions: { 
    north: '', 
    east: '', 
    west: '', 
    }, 
    character: { 
    money: 0, 
    armour: 0, 
    water: 0, 
    sword: 0, 
    } 
}; 

localStorage.setItem('gameState', JSON.stringify(gameLogic)); 
gameLogic = JSON.parse(localStorage.getItem('gameState'));