我有一个有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 :(得分:0)
http://www.w3schools.com/js/js_objects.asp
在“使用对象构造函数”部分中是您需要的所有信息,它显示了使用Person对象的示例,但它直接适用于您想要执行的操作。
快乐的编码!
答案 1 :(得分: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);
答案 2 :(得分: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";