Libgdx中部分精灵的重叠检测

时间:2017-09-26 00:15:40

标签: android libgdx collision-detection polygon overlap

我有下面代表两个多边形的图像精灵。这些多边形松散地代表精灵区域。我想要做的是使用这些多边形来检测精灵的重叠(或碰撞)。但是重叠应该在绿色方块内有效。 (这是一个拼图游戏,我试图实现的是当它们靠近时拼图拼图)

我尝试了Intersector.overlapConvexPolygons(adjacentPiece.polygon, currentPiece.polygon);但是这个检测到整个多边形的重叠。

我可以在这里做任何聪明的事情来检测重叠。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为你的方法可能过于复杂。如果你需要拼图相互碰撞,你可以保持你的物理界限,但如果没有,你可以完全删除它们。

无论哪种方式,为了检测两个部件是否应该咬合,您可以将每个部件近似大致位于每个部件的四个基本侧面的中心处。要测试足够靠近的部分,您只需要测量两个部分两侧点之间的距离,看它是否小于您想要使用的某个阈值。

如果这是一个典型的益智游戏,你只需要在玩家发布一个棋子时检查这个,所以如果需要一段时间来蛮力循环通过所有潜在的比赛,它真的不会值得注意的是因为在玩家拖动棋子时没有完成。

答案 1 :(得分:1)

如果你的所有拼图都是常规尺寸,你可以简单地使用每个拼图的正常方块。用于定义形状的方形将位于拼图块的实心部分和挤压件之间。

从你的图像我已经将正方形应用于所显示的部分。

enter image description here