0

私は2人のプレーヤーでゲームをしています。それらはほぼ同じ開始データを持っており、もちろんゲームの過程で変化します。

複製して変更するコンストラクターオブジェクトの王様が必要だと思います。また、簡単にajaxを送信できるようにJSONである必要があります。

役立つデザインパターンはありますか?単一のゲームインスタンスのデータのみが必要なため、データベースを使用しないことを好みます。

これは、私が現在1人のプレーヤーに使用している構造です。

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
        }
    }
};
4

3 に答える 3

0

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

「オブジェクトコンストラクターの使用」セクションには、必要なすべての情報があり、Personオブジェクトを使用した例が示されていますが、これは、実行しようとしていることに直接適用できると思います。

ハッピーコーディング!

于 2013-02-08T21:18:42.250 に答える
0

オブジェクトのインスタンス化と初期化に関するいくつかのデザインパターンがあります。ただし、継承や「プロパティ共有」の手法は必要ないようです。そのため、新しいオブジェクトを返す非常に単純な関数は、コンストラクターとして適しているはずです。コーディングにオブジェクトリテラルを使用することもできます。

それぞれにいくつかのパラメーターを持つ2つのコンストラクター関数の例:

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);
于 2013-02-08T21:19:03.517 に答える
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";
于 2013-02-08T22:15:10.440 に答える