我有一个非常独特的Box2D需求:
我将设置世界,其中多边形具有特定颜色。每当两个相同颜色的多边形重叠时,它们的交叉区域就不再是实体(其他物体可以通过它)。
我不知道如何在Box2D中实现这个碰撞方案。我有能力使用Box2D,所以我知道所有的基础知识并且之前已经使用过它。正是这个功能让我感到困惑。
我当前的计划:实现一个特殊的联系人监听器,它检查碰撞点是否有相同颜色的重叠多边形。我想在这里提出其他想法,因为这种想法听起来很脆弱且成本很高,因为联系人的工作方式。
答案 0 :(得分:0)
您可以保留当前重叠的当前多边形列表,如果碰撞对象只与一个对象碰撞,则它是实体。如果它与多个碰撞,则允许。当它们不再发生碰撞(重叠)时,您将从列表中删除引用。