我正在尝试用Java制作蛇式游戏。
为此,我使用列表来保持每个蛇的身体部位
ArrayList<SnakeBodyPart> snakeBodyParts = new ArrayList<SnakeBodyPart>();
。
我声明并启动变量SnakeBodyPart SnakeBodyPart = null;
。
然后我用snakeBodyParts.add(SnakeBodyPart);
将一个身体部位添加到蛇身上。
(不是最有效的方式,我猜,但它必须这样做。)
但出于某种原因,每当我运行脚本时,我都会
Exception in thread "main" java.lang.NullPointerException
,
并且错误是
at game.Snake.<init>(Snake.java:60)
在Java控制台中。
我想知道问题所在。这是SnakeBodyPart的代码。
class SnakeBodyPart{
int x,y,direction;
void move(){
if(direction == 0){
y -= 50;
}
if(direction == 1){
x += 50;
}
if(direction == 2){
y += 50;
}
if(direction == 3){
x -= 50;
}
}
}
提前致谢!
修改
第60行是snakeBodyParts.get(0).direction = 0;
。
答案 0 :(得分:1)
你做到了:
SnakeBodyPart snakeBodyPart = null;
创建对象
SnakeBodyPart snakeBodyPart = new SnakeBodyPart();
由于snakeBodyPart
为null
,您在NullPointerException
中获得了Line 60
。您在get()
上调用null
方法snakeBodyParts.get(0).direction = 0;