如何在libgdx中检查交集?

4

我有两个带有不同纹理的精灵。如何检查它们是否相交? 我正在使用libgdx 0.9.8。


请提供任何代码片段... - user3145373 ツ
4
我很好奇为什么人们经常会将问题标记为 off-topic,仅仅因为他们自己不理解这个问题。这个问题需要的唯一信息是图书馆,而且还被正确地打上了标签。 - noone
它毫无意义,@noone管理员不会听我们的。 - Kumar Saurabh
2个回答

9
if (sprite1.getBoundingRectangle().contains(Sprite2.getBoundingRectangle())
{
    //gives true when sprite2 one is completly inside sprite1
}

also

if(sprite1.getBoundingRectangle().overlaps(Sprite2.getBoundingRectangle())
{
    // gives true when sprite 2 intersects sprite1
}

只是提供一个大致的想法,因为我不了解你的代码。 - Kumar Saurabh
我想了解是否有任何可用于动画的方法。 - user40713

3

Intersector 提供了很多检查重叠和交集的方法,不仅适用于矩形,还包括圆形、点、多边形等。

在你的情况下,你可以使用以下方法:

Rectangle boundingRect1 = sprite1.getBoundingRectangle();
Rectangle boundingRect2 = sprite2.getBoundingRectangle();

if (Intersector.overlaps(boundingRect1, boundingRect2)) {
    ...
}

谢谢,我会尝试的。 - user40713
@noone 我从来没有觉得矩形需要使用Intersector,因为矩形本身就有包含和重叠。但是对于多项式来说,它是一个救星。 - Kumar Saurabh
是的,这只是个人口味问题。如果你有其他形状,那么你仍然需要使用交集器,所以你也可以在使用矩形时使用它。 - noone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接