Я действительно изо всех сил пытаюсь обнаружить столкновение между двумя объектами Car класса Car. Код довольно длинный, поэтому сложно все это включить. Я включил мой метод столкновения. Если вы обнаружите какие-либо логические ошибки с этим, я думаю, это моя проблема, которая была бы великолепна. Если вам нужно больше контекста, я задавал ранее подобный вопрос, который включает в себя намного больше кода здесь , но у меня все еще нет решения ..
Что я хочу, это сказать мне, когда две машины соприкасаются. То, что он делает, это не что иное, как печать «нет столкновений», даже когда есть столкновения.
метод столкновения (внутри класса среды) -
public boolean collision() {
double MIN_DIS = 0.1;
for (Car a : cars) {
for (Car b : cars) {
if (!(a.equals(b)) && (Math.abs(a.getPosition() - b.getPosition()) < MIN_DIS)) {
return true;
}
}
}
return false;
}
Метод вызова (внутри основного, где я добавляю автомобили) -
if(e.collision() == true) {
System.out.println("collision");
} else {
System.out.println("no collision");
}
Метод равно (я решил пока использовать (а == b) пока) -
public boolean equals(Object obj) {
if (obj instanceof Car){
Car car = (Car) obj;
return car.getPosition() == this.position && car.getLane() == this.lane && car.getColor().equals(this.color) && car.getSpeed() == this.speed;
}
return false;
}