重新加载原始js代码

时间:2017-05-25 21:35:38

标签: javascript html5 variables local-storage

我已经尝试了几个小时如何找到我的JavaScript代码的解决方案,但我发现了很多不同的例子,但它们似乎都不适用于我的代码。

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

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但是无法解决这个问题而且我假设从cookie中加载vars是坏的

它正在使用getElementID,因此在用户回到我的网站并重新播放时,如果在同一时间内保存变量会令人困惑,但会重新加载变量。

它使用纯JavaScript / HTML5 / CSS。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果您想使用localStorage保存您的值,那就像

一样简单
localStorage.setItem('money', money);

以后,您可以将其检索为

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

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

答案 1 :(得分: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'));