gpt4 book ai didi

java - 检查 ArrayList 中每个立方体的碰撞

转载 作者:行者123 更新时间:2023-11-29 04:09:01 25 4
gpt4 key购买 nike

我正在尝试检查 arraylist 中每个立方体的碰撞,但结果是,碰撞仅对 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;
}
}
}
}
}

最佳答案

首先,您的冲突方法不会返回 任何东西,我想知道它是如何编译的。但问题是,当您发现碰撞时,您永远不会退出 for 循环

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;
}

关于java - 检查 ArrayList 中每个立方体的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56252266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com