android - Libgdx中 Sprite 部分重叠检测

标签 android libgdx collision-detection polygon overlap

我有代表下面两个多边形的图像 Sprite 。这些多边形松散地代表 Sprite 区域。我想做的是使用这些多边形来检测 Sprite 的重叠(或碰撞)。然而,重叠应该在绿色方 block 内有效。 (这是一个拼图游戏,我想要实现的是当拼图 block 靠近时将其折断)

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

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

enter image description here

enter image description here

最佳答案

我认为你的方法可能过于复杂化了。如果您需要拼图 block 相互碰撞,则可以保留物理边界,但如果不需要,则可以完全删除它们。

无论哪种方式,要检测两个部件是否应该折断,您可以通过大致位于部件四个基本边的每个中心的点来近似每个部件。要测试 fragment 是否足够接近以咬合在一起,您只需测量两个 fragment 两侧的点之间的距离,看看它是否小于您要使用的某个阈值。

如果这是一个典型的益智游戏,您只需要在玩家释放一 block 时检查这一点,因此,如果需要一段时间来暴力循环所有潜在的匹配,则不会真正引人注目,因为当玩家拖动棋子时,它还没有完成。

关于android - Libgdx中 Sprite 部分重叠检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415980/

相关文章:

java - 单击第二个 Activity 的按钮在 View 上执行 'single click' 或 'scroll to' 时出错

python - 敌人不停留在原地

swift - Box2D:继续模拟 body ,同时忽略来自特定 body 的力

android - AudioRecord 类的问题

android - 如何在android中检测外部设备

java - Base64 编码器和解码器

java - 二维平面上的射弹问题

java - android 的 libGDX 动画

android - 在 Google Play Games Overlay 之后,LibGDX FitViewport 不再工作

c# - 获取列表中的后续元素 C#