我正在用 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。多年来我一直在尝试这样做,但毫无进展。如果有人能提供帮助那就太好了。谢谢!
最佳答案
也许您应该使用传统函数 jQuery.ajax 并将响应解析为 json。我总是发现它更容易调试。
jQuery.ajax({
url:'info.json',
dataType:'json'
}).done(function(response) {
console.log(response.doors);
});
请注意,响应的第一个元素不是response[0],而是response.doors。
此外...我不明白数据结构。为什么你的几个位置都有“左”键?
关于javascript - 使用 Javascript/jQuery 读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758130/