我有代表下面两个多边形的图像精灵。这些多边形大致表示精灵区域。我想要做的是使用这些多边形来检测精灵的重叠(或碰撞)。但是,重叠应在绿色正方形内有效。(这是一个拼图游戏,我正在尝试实现的是当拼图碎片被移动到更近的地方时,它们会被抓取)
我尝试了Intersector.overlapConvexPolygons(adjacentPiece.polygon, currentPiece.polygon);,但是这个检测到了整个多边形的重叠。
我可以在这里做的任何聪明的事情来检测重叠。


发布于 2017-09-26 08:21:29
我认为你的方法可能过于复杂化了。如果您需要拼图碎片相互碰撞,您可以保留您的物理边界,但如果不是,您可以完全删除它们。
无论采用哪种方法,要检测两个片段是否应该折断,可以通过大致位于每个片段的四个基本边的中心的点来近似每个片段。要测试片段是否足够近,以便捕捉在一起,您只需测量两个片段边上的点之间的距离,并查看它是否小于您想要使用的某个阈值。
如果这是一个典型的益智游戏,你只需要在玩家释放一个棋子的时候检查它,所以如果它需要一段时间来暴力循环所有的潜在匹配,它将不会真正被注意到,因为它不是在玩家拖动棋子的时候完成的。
发布于 2017-09-26 19:53:47
如果你所有的拼图都是正常大小的,你可以简单地对每个拼图使用普通的正方形。用于定义形状的正方形将位于拼图的实体部分和挤压件之间。
从你的图像中,我已经将方块应用到所显示的部分。

https://stackoverflow.com/questions/46415980
复制相似问题