だから、私は一緒に働いていA* Pathfinding
ます。私はそれを機能させましたが、完全には機能しません。4
右側の最後の列までずっと機能します。変。
X が 10 以下になるまでずっと機能します。Y
の最大値が であるため、これは奇妙です10
。もしかして一緒?知らない。しかし、私の地図は15 columns
です10 rows
。オンラインの例を次に示します: http://mystikrpg.com/html5/
私が得る興味深いエラーはUncaught TypeError: Cannot read property '8' of undefined
.
8
は、Y
クリックした場所の です。右側の最初の灰色のブロックをクリックすると (行 0 は壁で囲まれているため)。それ8
は言うだろう1
。
ノードを配置する部分です。
// Creates a Graph class used in the astar search algorithm.
function Graph(grid) {
var nodes = [];
var row, rowLength, len = grid.length;
for (x = 0; x <= 10; x++) {
row = grid[x];
nodes[x] = new Array(15);
for (y = 0; y <= 15; y++) {
nodes[x][y] = new GraphNode(x, y, row[y]);
}
}
this.input = grid;
this.nodes = nodes;
}
ただし、必要に応じて、オフラインでダウンロードしてローカルホストに配置できますhttp://mystikrpg.com/html5/Ethios.rar
とにかく...私が見つけた何か:
私の関数は要素loadMap()
の配列を返します。11
たとえば、(マップの軸をクリックすると) の場合x_block
はundefined が返されます。13
X
graph.nodes[x_block][y_block]
これが私のloadMap()
機能です:
function loadMap(map) {
if (map == 1) {
return [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1],
[1, 13, 1, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 13, 13, 1],
[1, 13, 1, 1, 13, 1, 1, 13, 1, 13, 13, 1, 13, 13, 13, 1],
[1, 13, 13, 1, 1, 1, 13, 13, 1, 13, 13, 1, 1, 1, 13, 1],
[1, 13, 13, 1, 13, 1, 13, 13, 13, 13, 13, 1, 13, 13, 13, 1],
[1, 13, 13, 13, 13, 1, 13, 13, 13, 13, 13, 1, 13, 13, 13, 1],
[1, 13, 1, 13, 13, 13, 13, 13, 1, 1, 1, 1, 13, 13, 13, 1],
[1, 13, 1, 1, 1, 1, 13, 13, 13, 13, 1, 13, 13, 13, 13, 1],
[1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]];
}
}
ご覧のとおり、横に 15 列、下に 10 行あります。
私は何を間違っていますか?
更新 NEW
for (y = 0; y <= 10; y++) {
row = grid[y];
nodes[y] = new Array(15);
for (x = 0; x <= 15; x++) {
console.log("X: " + x + " Y: " + y);
//console.log("Row: " + row[x]);
nodes[x][y] = new GraphNode(x, y, row[x]);
}
}