2013-02-08 58 views
0

我有一個有2名玩家的遊戲。他們有幾乎相同的開始數據,當然它在遊戲過程中會發生變化。構造一個默認的數據對象,用於更改

我猜我需要一些構造函數對象的王,我將複製,然後修改,我也需要它是JSON的簡單Ajax發送。

有沒有可以幫助我的設計模式?我更喜歡不使用數據庫,因爲我只需要一個遊戲實例的數據。

這是我現在使用的一個播放器的結構:

player = { 
    "active" : true, 
    "room" : openRoom, 
    "id" : playerID, 
    "name": username, 
    "hp" : 5, 
    "units" : { 
     1 : { 
      "id" : 1, 
      "hp" : 3, 
      "row" : 1, 
      "square" : 1 
     }, 
     2 : { 
      "id" : 2, 
      "hp" : 4, 
      "row" : 2, 
      "square" : 1 
     }, 
     3 : { 
      "id" : 3, 
      "hp" : 5, 
      "row" : 3, 
      "square" : 1 
     } 
    } 
}; 
+0

你所說的 「JSON」 是什麼意思? – Bergi 2013-02-08 21:15:35

+0

@Bergi他的意思是[JSON](http://www.json.org/js.html)。 Google是一個偉大的工具! :) – 2013-02-08 21:32:36

+0

@Web_Designer:我知道JSON是什麼,他發佈的代碼不使用它。所以我想知道他的對象文字是如何與JSON相關的。 – Bergi 2013-02-08 21:35:04

回答

0

有幾種關於對象實例化和初始化的設計模式。但是,您似乎不需要任何繼承或「屬性共享」技術,因此返回新對象的非常簡單的函數應該適合作爲構造函數。你甚至可以在編碼時使用對象文字。

的兩個構造函數,各有一些參數的一個例子:

function makePlayer(id, name, units) { 
    return { 
     "active" : true, 
     "room" : openRoom, 
     "id" : id, 
     "name": name, 
     "hp" : 5, 
     "units" : units 
    }; 
} 
var uuid = 1; 
function makeUnit(row) { 
    return { 
     "id" : uuid++, 
     "hp" : 3, 
     "row" : row, 
     "square" : 1 
    }; 
} 
var player = makePlayer(playerId, username, [makeUnit(2), makeUnit(4), makeUnit(3)]); 
var jsonstring = JSON.stringify(player); 
0

http://www.w3schools.com/js/js_objects.asp

在「使用對象構造」部分是你需要的所有信息,它顯示了使用人的例子對象,但它直接適用於你想要做的事情。

快樂編碼!

+1

這是真的[不是最好的參考](http://w3fools.com/)對象。關於方法的章節過於簡單化了,關於構造函數的章節根本沒有提到原型。 – Bergi 2013-02-08 21:27:12

+0

謝謝@Bergi通讀這篇文章多一些,我完全同意。 – Iwan 2013-02-08 21:42:04

0

我想你想克隆JSON對象。使用JQuery最簡單的方法是

player1 = $.extend({}, player, {name:"Allen"}); 
player2 = $.extend({}, player, {name:"John"}); 

如果不使用JQuery,使用JSON對象

var player1 = JSON.parse(JSON.stringify(player)); 
var player2 = JSON.parse(JSON.stringify(player)); 
player1.name = "Allen"; 
player2.name = "John"; 
相關問題