libgdx 计算重叠百分比?

libgdx calculate overlapping percentage?

我正在使用 libgdx,我需要计算 2 个矩形的重叠百分比。

其实就是一个Actor的重叠,加上一个矩形加到另一个Actor上。

如果另一个演员靠近某个演员,我想突出显示该演员,以便进行邻近度检查。

如果有 50% 的重叠,我想突出显示。然后,如果被拖到另一个演员附近的演员通过触摸被释放,我会让它滑到另一个演员附近。

所以这不是简单的碰撞检测,我需要知道它们碰撞了多少。

您可以使用 Libgdx Intersector class. You will need to create two Rectangles 轻松实现它,结果是第三个 - 您需要做的就是在相交后检查区域

    Actor a,b;

    ...

    Rectangle r = new Rectangle(a.getX(), a.getY(), a.getWidth(), a.getHeight() );
    Rectangle s = new Rectangle(b.getX(), b.getY(), b.getWidth(), b.getHeight() );

    Rectangle result = new Rectangle();

    Intersector.intersectRectangles(r, s, result);

    if( result.area() >= 0.5f * r.area() )
    {
        //do something if result area is equal to 50% a Actor area or more...
    }