2017-04-14 56 views
0

我想創建一個計數器,如果包含在ImageView數組中的圖像設置爲null,則會增加計數器。我有一個調用下面如何檢查ImageView Array中的Image是否設置爲'null'?

方法每當我殺死一個敵人它的圖像設置爲「空」子彈類

public void Collision(ImageView ene[], Rectangle b){ 
    for (int i = 0; i < 10 * wave; i++) { 

     if (ene[i].getBoundsInParent().intersects(b.getBoundsInParent())){ 
      ene[i].setVisible(false); 
      ene[i].setImage(null); 
      score(); 
      bulletGone(); 
     } 
    } 
} 

我的問題是,它打印出的第一個「空計數:」在checkWave方法,但永遠不會到達for循環。我是不是比較不正確?

回答

0

看看這checkWave(ImageView e[]) 現在檢查你的Collision方法朋友,你設置爲null誰?回到你的checkWave(ImageView e[])方法,你檢查誰是空?

希望你找到你的解決方案。

一個提示:int counter = 10 * wave;//its final

for (int i = 0; i < 10 * wave; i++) {//save yourself some keys 
or (int i = 0; i < counter; i++) { 

編輯

for (int i = 0; i < counter; i++) { 
    if (e[i].getImage() == null){ //now your loop will do 
     nullCount++; 
     System.out.println("Null count: " + nullCount); 
    } 
} 
+0

是感謝你的 '最終' 尖,忘了改變這種狀況。至於空點,我爲這兩種方法調用相同的ImageView數組,這就是爲什麼我不明白爲什麼它沒有進入for循環。對於碰撞方法,我在我的Bullet類中將其稱爲Collision(badGuys,bullet),然後將我的得分方法中的checkWave調用爲checkWave(badGuys)。有沒有一種方法可以檢查數組中的所有內容是否爲null,而不是遍歷每個數組? – CNiche

+0

先生@Ciche不要迷惑自己,如果你看看'碰撞(ImageView ene [],矩形b){'你在'ImageView'中設置'Image'字段爲'checkWave'(ImageView e []] )'你正在檢查它們是否爲空,即數組中的項不指向任何對象,它們是,你明白了嗎,你是否還要求另一種方法? – Elltz

+0

OHHH我明白了,我只是認爲.setImage(null)也會引用ImageView。有沒有一種方法可以將空值指向我的ImageView對象?我的意思是我希望我能夠做到這一點,但我從不對其他想法說不,不同的做法可能也會幫助我更好地理解! – CNiche

相關問題