0

我正在使用 Slick java 游戏库,并且我已经使用Shape的 Slick 实现作为碰撞的命中框,并且工作正常。我shape1.intersects(shape2)用来检查两个形状是否重叠。现在我想要做的是获取相交形状的中心点,以用作生成粒子的位置,以显示两个对象之间的碰撞。

我找不到任何计算形状交叉点的算法的解释,可能是因为我不知道它是否有特定的名称。

4

1 回答 1

1

查看文档,似乎有两种方法 -union并且subtract- 使用它们可以获得交集,如下所示:

A ∩ B  =  A ∪ B - (A - B) - (B - A)

唯一的问题是这些方法似乎返回一个形状数组而不是单个形状,无论这意味着什么。

当然,实时执行此操作可能会非常昂贵,因此您也可以将碰撞点近似为位于两个形状的边界框/圆的中心之间。

于 2011-01-29T21:48:37.857 回答