所以,我正在与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
是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 行。
我究竟做错了什么?
更新新
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]);
}
}