我目前正在嘗試爲基於A *方法算法的基於網格的遊戲創建路徑查找方法。但是我有一個基本的問題,我PathNode類實例中操作變量:從ArrayList中更改對象中的變量<Object>
public void AStarPathfinding(PathNode snakeHead, PathNode foodLocation) {
System.out.println(food.xFood);
System.out.println(food.yFood);
openNodes.add(snakeHead);
int xHead = (int) snakeSegments.get(0);
int yHead = (int) snakeSegments.get(1);
snakeHead.xCoordinate = (int) xHead;
snakeHead.yCoordinate = (int) yHead;
foodLocation.xCoordinate = (int) food.xFood;
foodLocation.yCoordinate = (int) food.yFood;
但是我收到空點異常錯誤:
Exception in thread "Thread-2" java.lang.NullPointerException
at ArtificialSnake.AStarPathfinding(ArtificialSnake.java:136)
這是這一行:
snakeHead.xCoordinate = (int) xHead;
想法是將startNode(snakeHead)設置爲當前蛇頭的位置....但如上面所建議的,我無法弄清楚如何修改snakeHead insta中的xCoordinate變量PathNode類的nce。
看着另一個問題:Edit variables from object in ArrayList?
它建議使用制定者,我已經厭倦了這個,但是我仍然得到零點異常錯誤。
注意:Thread2是與Swing U.I分開的gameLoop線程,該尋路方法所在的類是同一線程的一部分。
我在這裏錯過了什麼?
錯誤似乎'snakeHead'爲空 –
這意味着'NullPointerException'發生時'snakeHead'爲'null'。調試你的代碼,找出它爲什麼是'空'。 – Jesper