我正在使用Slick java游戏库,我使用了Shape的Slick实现作为碰撞的命中框,而且工作正常。我使用shape1.intersects(shape2)
检查两个形状是否重叠。现在我想要做的是将相交形状的中心点用作生成粒子的地方,显示两个物体之间的碰撞。
我找不到任何计算形状交叉的算法的解释,可能是因为我不知道它是否有特定的名称。
答案 0 :(得分:1)
查看文档,似乎有两种方法 - union
和subtract
- 使用它们可以获得如下交集:
A ∩ B = A ∪ B - (A - B) - (B - A)
唯一的问题是这些方法似乎返回一个形状数组而不是一个形状,无论这意味着什么。
当然,实时执行此操作可能会非常昂贵,因此您可以将碰撞点近似设置在两个形状的边界框/圆的中心之间。