我試圖做一個簡單的javagame。其中一種方法創建一個具有隨機x和y值的新矩形,然後將它們添加到列表中。 我希望我的程序檢查是否要添加新的矩形,與當前的矩形相交,如果是,它應該得到新的x和y值。Java 2D遊戲隨機矩形
我做了應該工作的方法,但不知何故,不,我得到的錯誤:
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException.
該方法的代碼是:提前
public void addObstacle() {
int x = (int)((Math.random() * 10)) * 40;
int y = (int)((Math.random() * 10)) * 20;
Rectangle newRec = new Rectangle(x, y, 20, 20);
for(Rectangle r : obstacles) {
if(newRec.intersects(r)) {
System.out.println("The new rectangle does intersect with " + r);
}
else {
obstacles.add(newRec);
}
}
repaint();
}
謝謝。
更新:加入修正:
Boolean doesCollide = false;
for(Rectangle r : obstacles){
if(newRec.intersects(r)){
System.out.println("The new rectangle does intersect with " + r);
doesCollide = true;
}
}
if(!doesCollide){
obstacles.add(newRec);
}
你能複製整個錯誤行嗎? –