基本上我創建一個簡單的遊戲,我想界出現,但是當他們被印在屏幕上,他們不能相互重疊。創建對象並將其放入一個數組列表中,並且當創建另一個數組時,它需要檢查其與列表列表中已有數據的座標,以確保其不同。要檢查的方法稱爲isCollidingWith,並且有一個實際設置位置的setPosition方法。這是我的。查找NullPointerException異常
這是如何創建對象,我甚至不能得到一個被創建,一旦我得到它的工作我會創造更多的這些對象,因此這整點。
Circle circle = new Circle(rng,circles);
circles.add(circle);
這是對象的構造函數需要一個隨機數和圓陣列表。它以一個while循環,併爲這個圈子的位置,然後它進入一個循環並檢查它是否與其他的和碰撞,如果是,它打破並回到while循環的頂部和設置不同的位置,然後重複檢查它是否與陣列列表中已有的其他位置發生碰撞。
public Planet(Random rng, ArrayList<Circle> circles){
boolean key = true;
while(key){
this.graphic.setPosition(rng.nextFloat()*GameEngine.getWidth(),rng.nextFloat()*GameEngine.getHeight());
for(int i = 0; i<circles.size();i++){
if(this.graphic.isCollidingWith(circles.get(i).graphic)){
key = true;
break;
}
else key = false;
}
}
}
問題是我不斷收到一個NullPointerException在構造函數中它說this.graphic.setPosition的行。但我猜它與陣列列表有關,因爲eclipse通常對於錯誤定位並不準確。如果有人能告訴我這裏看起來有什麼問題,那很好。
你在哪裏初始化*** ***圖形對象??? –
哇,從字面上看,我完全忘了初始化圖形對象。哇,我覺得在過去的5個小時裏一直盯着這個。非常感謝。 –