我真的不喜欢在Libgdx中使用box2d,因此我从Tiled设置了一个地图,为图层中的每个单元都有一个矩形。我设置了一个播放器,如果未触摸矩形之一,该播放器应掉落,但它会缓慢落入地图。

    for(int i = 0; i < g.getBounds().size; i++) {
        Intersector.intersectRectangles(bounds, g.getBounds().get(i), intersection);
        if((bounds.overlaps(g.getBounds().get(i))) && intersection.y > g.getBounds().get(i).y) {
            vel.y = 0;
            if (MyInput.isPressed(MyInput.SPACE)) {
                vel.y = 5;
            }
        } else {
            vel.y-=.0005f;
        }
    }


for循环遍历所有矩形以检查播放器是否触碰顶部。

最佳答案

    boolean collides=false;
    for(int i = 0; i < g.getBounds().size; i++) {
        Intersector.intersectRectangles(bounds, g.getBounds().get(i), intersection);
        if((bounds.overlaps(g.getBounds().get(i))) && intersection.y > g.getBounds().get(i).y) {
            collides=true;
        }
    }

    if(collides){
        vel.y = 0;
        if (MyInput.isPressed(MyInput.SPACE)) {
              vel.y = 5;
        }
    }else{
        vel.y-=.0005f;
    }

您的代码有什么问题的解释在用户789805答案上

10-08 11:31