0

我正在用 javascript/html5 构建一个游戏,我正在尝试在迷宫中构建一个锁门数据库,可以在整个游戏过程中加载和覆盖。我在网上找到了大量教程,但没有任何效果。我想知道是否有人可以查看我正在尝试的内容并让我知道我做错了什么。

我的 JSON 文件如下所示:

{
"doors": [
    {"left":true, "right":false, "bottom":false}, 
    {"left":false, "right":false, "bottom":false},
    {"right":false, "bottom":false, "top":false},
    {"left":false, "right":false, "top":false}
    ]
}

我想构建 HTML 页面,以便当玩家与门碰撞时,它会检查它是否被锁定:

if (player.x < leftDoor.x + leftDoor.width  && 
player.x + player.width  > leftDoor.x &&
player.y < leftDoor.y + leftDoor.height && 
player.y + player.height > leftDoor.y) 
{
     if(doors[0].left == true)
         alert("door is locked");
     else
         window.location = ( "2.html?p1=");
} 

但是我无法从 JSON 文件本身读取。我试过这样的事情:

function loadJson() {
    $(document).ready(function()
    {
        $.getJSON('info.json', function(doors) {
        alert(doors[0].left);
        });
    });
}

但是什么也没发生,我还需要能够访问 HTML 中的信息。我宁愿使用 jQuery,但如果它有效,我不反对直接使用 JS。我一直在尝试这样做很长时间,但我绝对无处可去。如果有人可以提供帮助,那就太棒了。谢谢!

4

2 回答 2

1

也许您应该使用传统的函数 jQuery.ajax 并将响应解析为 json。我总是发现它更容易调试。

jQuery.ajax({
    url:'info.json',
    dataType:'json'
}).done(function(response) {
   console.log(response.doors);
});

请注意,响应的第一个元素不是 response[0] 而是 response.doors。

此外......我没有得到数据结构。你怎么在几个位置都有一个“左”键?

于 2013-11-03T21:14:45.497 回答
1
$.get('info.json',{},function(data){

    console.log(data.doors);
});

这就对了 。

于 2013-11-03T21:50:41.440 回答