我想在Java中製作蛇型遊戲。ArrayList上的NullPointerExceptions
要做到這一點,我使用的名單,以保持每抱蛇的身體部位與
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)
。
我想知道問題是什麼。這是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;
。
加油!閱讀例外!問題出在Snake.java第60行。這就是我們需要看到的! – John3136
'SnakeBodyPart SnakeBodyPart = null; .'是你的問題。在調用一個方法之前,你需要給變量分配一個實例:'snakeBodyParts.add(SnakeBodyPart);'做一些像'SnakeBodyPart sbp = new SnakeBodyPart();'假設類中沒有參數構造函數。 – Kon
kon,把它放在答案中,而不是評論 – MeBigFatGuy