だから、これがどこで限界を超えているのかわからないので、皆さんは私にそれを指摘してもらえますか. openNode.indexOf() のそれぞれでエラーが発生します。また、N の値を出力することで、N.getX() または N.getY() が 1 未満にならないことがわかります。
if(N.getX() > 0)
{
flag = false;
if(!isTilePassable(nodeGrid[N.getX()-1][N.getY()].getX() * 32, nodeGrid[N.getX()-1][N.getY()].getY() * 32)) //west
closedNode.add(nodeGrid[N.getX()-1][N.getY()]);
for(Node e : closedNode)
if(e.equals(openNode.indexOf(nodeGrid[N.getX()-1][N.getY()])))
flag = true;
if(!flag)
{
openNode.get(openNode.indexOf(nodeGrid[N.getX()-1][N.getY()])).setDistance(SRC);
openNode.get(openNode.indexOf(nodeGrid[N.getX()-1][N.getY()])).setParent(N);
}
}
if(N.getY() > 0)
{
flag = false;
if(!isTilePassable(nodeGrid[N.getX()][N.getY()-1].getX() * 32, nodeGrid[N.getX()][N.getY()-1].getY() * 32)) //north
closedNode.add(nodeGrid[N.getX()][N.getY()-1]);
for(Node e : closedNode)
if(e.equals(openNode.indexOf(nodeGrid[N.getX()][N.getY()-1])))
flag = true;
if(!flag)
{
openNode.get(openNode.indexOf(nodeGrid[N.getX()][N.getY()-1])).setDistance(SRC);
openNode.get(openNode.indexOf(nodeGrid[N.getX()][N.getY()-1])).setParent(N);
}
}
これは nodeGrid の初期化と x+y 値の割り当てです Node オブジェクトは x と y のパラメーターを取ります
for(int i = 0; i < 36; i++)
for(int ii = 0; ii < 25; ii++)
nodeGrid[i][ii] = new Node(i,ii); //initializes node grid