Android Libgdx中部分sprite的重叠检测
我有代表下面两个多边形的图像精灵。这些多边形松散地表示精灵区域。我想做的是使用这些多边形来检测精灵的重叠(或碰撞)。但是,重叠应在绿色正方形内有效。(这是一款拼图游戏,我试图实现的是当拼图块靠近时捕捉拼图块) 我尝试了Android Libgdx中部分sprite的重叠检测,android,libgdx,collision-detection,polygon,overlap,Android,Libgdx,Collision Detection,Polygon,Overlap,我有代表下面两个多边形的图像精灵。这些多边形松散地表示精灵区域。我想做的是使用这些多边形来检测精灵的重叠(或碰撞)。但是,重叠应在绿色正方形内有效。(这是一款拼图游戏,我试图实现的是当拼图块靠近时捕捉拼图块) 我尝试了Intersector.overlappconverxpolygons(adjacentPiece.polygon,currentPiece.polygon)但是,此项检测整个多边形的重叠 我可以在这里做一些聪明的事情来检测重叠 我认为你的方法可能过于复杂了。如果你需要你的拼图块
Intersector.overlappconverxpolygons(adjacentPiece.polygon,currentPiece.polygon)代码>但是,此项检测整个多边形的重叠
我可以在这里做一些聪明的事情来检测重叠
我认为你的方法可能过于复杂了。如果你需要你的拼图块互相碰撞,你可以保留你的物理边界,但如果没有,你可以完全移除它们
无论采用哪种方法,要检测两个工件是否应该咬合,您可以在工件的四个基本边的每个边的大致中心处,用一个点来近似每个工件。若要测试碎片是否足够接近,可以咬合在一起,只需测量两个碎片侧面上的点之间的距离,然后查看它是否小于要使用的某个阈值
如果这是一个典型的益智游戏,你只需要在玩家释放一个棋子时检查它,因此如果需要一段时间来通过所有可能的比赛进行暴力循环,它不会很明显,因为当玩家拖动棋子时,它不会被完成。如果你所有的拼图棋子都是规则大小的,你可以简单地为每个拼图棋子使用普通方块。用于定义形状的正方形将位于拼图件的实体部分和挤压件之间
根据您的图像,我已将方块应用于所示的各个部分
您可能只想使用box 2d进行碰撞。谢谢。请看新的插图。这就是你的意思吗?基于此图像,我们测量Y距离,并将其与阈值进行比较。X呢?不完全是。我的意思是每个拼图有四个点,一个在四条边的中间。整件作品的中心没有一个点。谢谢。我会试试看。顺便说一句,我创建了多边形来创建拼图块的触摸区域。你知道更好的方法吗。这里有一个问题,我不知道你的方法有多困难……如果它有效,我会让它单独运行,除非它会给你带来性能问题或花费你太多的时间来设置。一种更自动化的方法可能是在触摸屏幕时,将游戏片段绘制到帧缓冲区,但使用纯色(每个片段的唯一颜色)。这需要一个专门的着色器。您可以使用GL剪切来避免绘制超出性能需要的图形。然后检查帧缓冲区上相应触摸位置的像素颜色。谢谢,我将继续此路径。顺便说一句,你知道一种从一个完整的正方形图片创建拼图精灵的方法吗。目前,我从android方法动态创建拼图图像,并将其加载到libgdx。翻译中存在一些问题。全部问题