我正在尝试让这个基本应用程序检测两个 Sprite 的重叠,但什么也没有发生。按照有关此的教程进行操作,但它似乎对我不起作用。有什么想法吗?
相关代码
Rectangle car;
Array<Rectangle> carb;
public void render() {
String scorer = String.valueOf(score);
camera.update();
batch.setProjectionMatrix(camera.combined);
Iterator<Rectangle> iter = carb.iterator();
while (iter.hasNext()) {
Rectangle car2 = iter.next();
car2.y -= score + 200 * Gdx.graphics.getDeltaTime();
if (car2.y + 200 < 0) {
iter.remove();
score++;
if (car.overlaps(car2)) {
System.out.println("Works");
iter.remove();
}
}
}
private void spawnCar() {
Rectangle car2 = new Rectangle();
car = new Rectangle();
lastSpawn = TimeUtils.nanoTime();
}
最佳答案
这里:
if (car2.y + 200 < 0) {
iter.remove();
score++;
if (car.overlaps(car2)) {
System.out.println("Works");
iter.remove();
}
}
只有在屏幕下方的矩形被移除时,您才会检查碰撞。这样做:
if (car.overlaps(car2)) {
System.out.println("Works");
iter.remove();
}
if (car2.y + 200 < 0) {
iter.remove();
score++;
}
关于java - 使用 .overlaps 方法检测碰撞/重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952540/