我正在開發一個簡單的遊戲,其中玩家正在拍攝流星體。我有兩個圖像的碰撞檢測問題。我有兩個激光和流星體的列表,每個物體都有X和Y位置。我想要做的是將當前圖像(激光和流星體)的位置實現爲兩個矩形,以便我可以檢查它們是否相互作用,如果它們相互作用,則從兩個列表中刪除這些元素。 我的邏輯可能有問題,所以如果有更常用或適當的方法,請告訴我。碰撞檢測中的java.util.NoSuchElementException錯誤
這裏是碰撞檢測方法
public void checkCollision(){
ListIterator<Shoot> shootItr = shots.listIterator();
ListIterator<Meteor> metItr = meteors.listIterator();
Rectangle2D rectMet;
Rectangle2D rectSh;
while(shootItr.hasNext()){
rectSh = new Rectangle2D.Float(shootItr.next().getBeamPositionX(), shootItr.next().getBeamPositionY(), 10, 10);
while(metItr.hasNext()){
rectMet = new Rectangle2D.Float(metItr.next().getMetPositionX(), metItr.next().getMetPositionY(), 20, 20);
if(rectSh.intersects(rectMet)){
metItr.remove();
shootItr.remove();
}
}
}
}
這裏是例外:
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(Unknown Source)
您在一次執行中調用'.next()'兩次?存儲每個執行的值。 – Emz 2014-12-06 08:59:38