2016-07-02 3 views
0

Im возникли проблемы, выяснить, как сохранить и загрузить свою игру с форматом Ive используетсясохранение и загрузка объекта Javascript

Так я это

var upgradeButtonsData = [ 
      {icon: 'dagger', name: 'Attack', level: 0, cost: 5, purchaseHandler: function(button, player) { 
       player.clickDmg += 1; 
      }}, 
      {icon: 'swordIcon1', name: 'Auto-Attack', level: 0, cost: 25, purchaseHandler: function(button, player) { 
       player.dps += 5; 
      }} 
     ]; 

и мне нужно сохранять и загружать он в том же формате, как и остальная часть моей игры, например, я коплю мои игроки золото, как этот localStorage.setItem("playerGold",this.player.gold);

, а затем загрузить его, как этот

Я хотел бы сделать что-то похож с выше код, но я не уверен, как

также, если его отношение вот как я использую приведенный выше код

onUpgradeButtonClick: function(button, pointer) { 
     // make this a function so that it updates after we buy 
     function getAdjustedCost() { 
      return Math.ceil(button.details.cost + (button.details.level * 1.46)); 
     } 

     if (this.player.gold - getAdjustedCost() >= 0) { 
      this.player.gold -= getAdjustedCost(); 
      this.playerGoldText.text = 'Gold: ' + this.player.gold; 
      button.details.level++; 
      button.text.text = button.details.name + ': ' + button.details.level; 
      button.costText.text = 'Cost: ' + getAdjustedCost(); 
      button.details.purchaseHandler.call(this, button, this.player); 
     } 
    }, 

также им с помощью Phaser в качестве основы

EDIT:

По-видимому, люди смущены тем, что я спрашиваю, не хочу получить информацию о том, как сохранить золотой ive, уже сделанный, что это был всего лишь пример того, как я хочу сохранить обновления, как будто мне нужно сохранить уровень атаки и стоимость, а также уровня «авто-атаки и стоимости для загрузки на следующей игре играть

извините за путаницу

EDIT Я хочу этот код на СОХРАНИТЬ

var upgradeButtonsData = [ 
      {icon: 'dagger', name: 'Attack', level: 0, cost: 5, purchaseHandler: function(button, player) { 
       player.clickDmg += 1; 
      }}, 
      {icon: 'swordIcon1', name: 'Auto-Attack', level: 0, cost: 25, purchaseHandler: function(button, player) { 
       player.dps += 5; 
      }} 
     ]; 
+0

Если я понимаю, что вы хотите сохранить данные «gold» после обновления? Или загрузка перед обновлением? – ClementNerma

+0

золото было всего лишь примером того, как я сохраняю и загружаю, мне нужно знать, как я это делаю с обновлениями –

ответ

0

EDIT: Вот код для сохранения и загрузки данных в Upgrader в:

function saveUpgrader() { 
    var save = []; 

    for(var i = 0; i < upgradeButtonsData.length; i++) 
    save.push([upgradeButtonsData[i].level, upgradeButtonsData[i].cost]); // [0] = level ; [1] = cost 

    try { localStorage.setItem('upgrader_save', JSON.stringify(save)); } 
    catch(e) { 
    alert('Failed to save upgrader\'s data'); 
    } 
} 

function loadUpgrader() { 
    if(!localStorage.getItem('upgrader_save')) 
    return ; 

    try { 
    var json = JSON.parse(localStorage.getItem('upgrader_save')); 

    for(var i = 0; i < json.length; i++) { 
     upgradeButtonsData[i].level = json[i][0]; 
     upgradeButtonsData[i].cost = json[i][1]; 
    } 
    } 

    catch(e) { 
    alert('Failed to load upgrader\'s data'); 
    } 
} 

Вызов функции saveUpgrader сохранить level и cost каждого элемента в Upgrader или loadUpgrader, чтобы загрузить их (это будет перезаписать текущий уровень и стоимость).

ПРИМЕЧАНИЕ: Если вы хотите добавить детали к Upgrader, пожалуйста, добавьте его после существующих элементов, например:

var upgradeButtonsData = [ 
    {icon: 'dagger', name: 'Attack', level: 0, cost: 5, purchaseHandler: function(button, player) { 
     player.clickDmg += 1; 
    }}, 
    {icon: 'swordIcon1', name: 'Auto-Attack', level: 0, cost: 25, purchaseHandler: function(button, player) { 
     player.dps += 5; 
    }}, 
    // Add the new element here 
    {icon: '...', name: '...', level: 0, cost: 75, purchaseHandler: function(button, player) { 
     ... 
    }} 
]; 

Если вы добавляете новый элемент перед тем, как другие сохранения будут повреждены и делать некоторые плохие вещи.

Я надеюсь, что это помогло вам:

+0

ваш смущенный, пожалуйста, прочитайте мое редактирование –

+0

Итак, вы хотите сохранить и загрузить всю информацию игрока (весь объект игрока)? – ClementNerma

+0

где он говорит 'var upgradeesButtonData', я хочу сохранить и загрузить все там –

Смежные вопросы