0

HTML5とjavascriptでゲームを作成していて、問題が発生しました。

ゲームはタイルシステムを使用してマップをロードします。現在、私の地図は多次元配列内に保存されており、次のようになります。

var map = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]

XMLファイルを使用して配列を更新することで移動レベルを追加したいと思います。

私のXMLファイルは現在次のようになっています。

<TileMaps>
<Level level="1">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
<Level level="2">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
</TileMaps>

誰かがlevel="1"を私のマップ変数にロードするのを手伝ってくれるならそれは素晴らしいことです。

ありがとう

4

2 に答える 2

0

xmlは使用せず、jsonを使用してください。これがその内容へのリンクです、http://www.json.org/

完全に正確というわけではありませんが、jsonをjavascriptのサブセットと考えるのはかなり安全です。

例えば:

{
    "levels":[ 
        [    
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        ],


        [
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        ]
    ]
}

http://jsonlint.orgを使用してjsonを検証します。

于 2012-07-30T11:09:26.977 に答える
0

知りたい人のために、私は次のコードを使用してこれを修正しました:

req=new XMLHttpRequest();
req.open("GET","my.xml",false);
req.send();
xmlDoc = req.responseXML;
map = JSON.parse(xmlDoc.getElementsByTagName('map')[0].firstChild.nodeValue);
于 2012-07-31T08:53:53.820 に答える