我有代表下面两个多边形的图像 Sprite 。这些多边形松散地代表 Sprite 区域。我想做的是使用这些多边形来检测 Sprite 的重叠(或碰撞)。然而,重叠应该在绿色方 block 内有效。 (这是一个拼图游戏,我想要实现的是当拼图 block 靠近时将其折断)
我尝试了 Intersector.overlapConvexPolygons(adjacentPiece.polygon, currentPiece.polygon);
但是这个检测到整个多边形的重叠。
我可以在这里做任何聪明的事情来检测重叠。
最佳答案
我认为你的方法可能过于复杂化了。如果您需要拼图 block 相互碰撞,则可以保留物理边界,但如果不需要,则可以完全删除它们。
无论哪种方式,要检测两个部件是否应该折断,您可以通过大致位于部件四个基本边的每个中心的点来近似每个部件。要测试 fragment 是否足够接近以咬合在一起,您只需测量两个 fragment 两侧的点之间的距离,看看它是否小于您要使用的某个阈值。
如果这是一个典型的益智游戏,您只需要在玩家释放一 block 时检查这一点,因此,如果需要一段时间来暴力循环所有潜在的匹配,则不会真正引人注目,因为当玩家拖动棋子时,它还没有完成。
关于android - Libgdx中 Sprite 部分重叠检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415980/