我已经尝试了几件事,包括:
传感器,光线投射,夹具距离,AABB,重叠夹具顶点,相交点。不幸的是,我无法在这里提供几乎可以正常工作的代码示例。我也在寻找所有可能来源的十倍。

从多种资源中进行切片/分割的方法与我需要实现的功能并不完全一致,它是通过实际的固定装置通过入口和出口完成的。在我的情况下,需要“切割”的空白处。

图片:

destruction example 1

destruction example 2

您在这里看到的是一个已被三角剖分的单体,其中有多个固定装置。图片代表玩家切入谷底后的可能状态。我正在使用来自dermetfan的Breakable类,以便摆脱碰撞时的固定装置。

我想检测一下身体(固定装置)何时松散/分开,而不是如图片所示未连接到体内。由于除去固定物后,人体物理仍然完好无损,所以它旋转并移动,因为它没有以任何方式破裂。

如果我拥有这些固定装置,我将克隆它们以销毁原始装置并创建一个新的主体,以使“损坏”的部分表现为独立的。

更新:
请记住,由于没有破坏/路径限制,因此可能有X个“边/个”。问题是要识别那些在视觉上分离的固定装置的零件/集合。它不是一次唯一的冲动,每个夹具三角形一次被破坏。

最佳答案

您似乎想要构建一个切片机制,为此,我不确定可破解的方法是否正确。您可能要查看此article,以查看是否要采用其他方法。但是,如果您正在使用固定装置网格,那么这可能是一种有用的通用方法。

为了解决这个问题,我想找到一个可以帮助我做到这一点的数据结构。为此,理想的节点和边图。作为固定装置的节点和边存在于仍连接的相邻固定装置之间。

我将在创建身体时构建此图,并使用固定装置中的用户数据进行存储。在“切片”时使用灯具的视觉重叠来构建它会更昂贵,甚至可能更易碎。

制作切片时,您可以破坏边缘,最后使用连接的图形查找算法来识别您的作品。在google搜索中有很多结果,但是here是您可以从中得到的答案。

一旦有了零件,就可以为每个零件创建新的实体和装置。如果新零件中具有每个夹具的顶点,则可以使用this方法获取新的外边缘并以与构建父零件相同的方式来构建零件。

关于java - box2d实体损坏,找到特定的固定装置,单独的固定装置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46391124/

10-10 15:30