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 回答