mcfly24:
Estoy tratando de comprobar la colisión para cada cubo en ArrayList, pero el resultado es que la colisión está trabajando sólo para la última cubo en ArrayList ..
public class Cube {
public int x, y;
private boolean conflict = false;
public Cube(int x, int y) {
this.x = x;
this.y = y;
}
public void moveDown() {
if(!conflict("down")) {
this.y += 18;
}
}
public boolean conflict(String dir) {
if(dir.equals("down")) {
for(Cube cubes : Panel.cubes) {
if(this.hashCode() != cubes.hashCode()) {
if(this.y + 18 == cubes.y && this.x == cubes.x || this.y >= Main.height - 18*4) {
this.conflict = true;
} else this.conflict = false;
}
}
}
}
}
desmaxi:
En primer lugar el método de conflicto no return
nada, me pregunto cómo este compilaciones. Pero el problema es que nunca sale el for loop
cuando encuentre una colisión.
public boolean conflict(String dir) {
if (dir.equals("down")) {
for(Cube cubes : Panel.cubes) {
if(this.hashCode() != cubes.hashCode()) {
if(this.y + 18 == cubes.y && this.x == cubes.x || this.y >= Main.height - 18*4) {
this.conflict = true;
break;
} else {
this.conflict = false;
}
}
}
}
return this.conflict;
}