1

そのため、JavaScriptの配列でこの問題が発生していました。ここに示すように、いくつかの変数を初期化しました。

var world = new Array;
var monsters = new Array;
var items = new Array;
var x = 0;
var y = 0;

そして、その上でこのコードを実行しようとしました:

            while (y <= 49) { //generate world
                world[x][y] = parseInt(Math.floor(Math.random()*2)); //0 = flatland, 1 = desert, 2 = mountain, 3 = swamp
                x++;
                if (x >= 49) {
                    x = 0;
                    y++;
                }
            }
            x = 0;
            y = 0;

しかし、Math.random()行に「TypeError:未定義をオブジェクトに変換できません」というエラーが表示され ます。考えられることはすべて試しましたが、それでもエラーが発生します。どんな助けでも大歓迎です!

4

3 に答える 3

3

world[x][y]初期化されていません。それが問題です。whileステートメントの下で初期化する必要があります

while (y <= 49) {
    world[x] = new Array(); //add this
于 2012-10-05T03:48:24.687 に答える
1

world[x]は配列ではないため、に値を割り当てようとするとエラーが発生しますworld[x][y]。配列を埋める方法は私には奇妙に思えます。このようにします。

world = [];
for (x = 0; x <= 49; x++) { //generate world
    world[x] = [];
    for (y = 0; y <= 49; y++){
        world[x][y] = parseInt(Math.floor(Math.random()*2)); //0 = flatland, 1 = desert, 2 = mountain, 3 = swamp
    }
}
x = 0;
y = 0;
于 2012-10-05T03:53:02.593 に答える
0

がありません()。世界は2次元配列として定義する必要がありますworld[x] = new Array();[]表記を使用する方が便利です。

于 2012-10-05T03:45:06.010 に答える