gpt4 book ai didi

java - 在 LibGDX 中检测圆是否与矩形的上半部分或下半部分相交

转载 作者:行者123 更新时间:2023-11-29 04:48:23 24 4
gpt4 key购买 nike

使用 LibGDX,我有一个 Circle 对象与一个 Rectangle 对象发生碰撞。我使用 Libgdx 中包含的 Intersector 类检测到这种冲突,如下所示:

 if(Intersector.overlaps(circle, rectangle)){
do something
}

此检测工作正常,但我想知道是否有一种方法可以检测圆是否与矩形的上半部分或矩形的下半部分发生碰撞,并据此执行相应的操作。

所以也许是这样的

if(Intersector.overlaps(circle, rectangle.getHeight() - rectangle.getHeight() / 2)){
do something
}

但不幸的是,这会返回一个 float ,intersect 类不接受它。

如有任何关于如何实现这一目标的想法,我们将不胜感激。

最佳答案

保留一个可重用的额外矩形实例:

private final Rectangle tmp = new Rectangle();

当您的圆圈与您关心的矩形 A 相交时,您可以将临时矩形设置为矩形 A 的上半部分并检查是否发生碰撞。结果告诉您碰撞发生的位置是顶部还是底部。 (但如果圆与上半部分和下半部分相交,顶部也会发生碰撞,所以请记住这一点。)

if(Intersector.overlaps(circle, rectangle)){
tmp.set(rectangle.x, rectangle.y + rectangle.height/2, rectangle.width, rectangle.height/2);
if (Intersector.overlaps(circle, tmp){
//top half (or both top and bottom) hit
} else {
//bottom half hit
}
}

关于java - 在 LibGDX 中检测圆是否与矩形的上半部分或下半部分相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36340280/

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