Comprobación de colisión para cada cubo en ArrayList

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 returnnada, me pregunto cómo este compilaciones. Pero el problema es que nunca sale el for loopcuando 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;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=335890&siteId=1
Recomendado
Clasificación