Я пытаюсь сделать простой 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);
}
Не могли бы вы скопировать всю строку ошибок? –