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 に答える