【发布时间】:2013-08-05 18:37:13
【问题描述】:
我目前正在尝试基于 A* 方法算法为我的基于网格的游戏创建寻路方法。但是,我在 PathNode 类实例中操作变量时遇到了一个基本问题:
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) 设置为当前蛇头的位置....但是如上所述,我无法弄清楚如何修改 PathNode 类的蛇头实例中的 xCoordinate 变量。
看另一个问题:Edit variables from object in ArrayList?
它建议使用设置器,我已经厌倦了这个但是我仍然得到空点异常错误。
注意:Thread2 是独立于 Swing U.I 的 gameLoop 线程,该寻路方法所在的类是同一线程的一部分。
我在这里错过了什么?
【问题讨论】:
-
错误似乎
snakeHead为空 -
这意味着
snakeHead在NullPointerException发生时是null。调试你的代码,找出它为什么是null。
标签: java object arraylist coordinates path-finding