我会为红色物体启用子弹模式,而对于平台物体则不启用子弹模式。
至少在Box2D 2.3.2的C++ CCD代码中(请参见b2World::SolveTOI
),所有给定时间步长的接触点都将被检查,以确定是否需要对它们进行CCD处理。基本上,启用了子弹模式的物体或具有非动态物体(静态或运动学物体)的接触点将继续进行CCD处理。因此,启用子弹模式的物体越少,该方法就越快完成。
因此,在红色物体和平台物体上同时启用子弹模式并不是最优选择(从算法角度来看),尽管在只有三个绘制的物体时性能差异不太明显。而且,考虑到您只关心红色物体和平台之间的碰撞,只有一个启用子弹模式就足以使它们的接触点继续进行CCD处理。
至于为什么我会启用红色物体的子弹模式(而不是平台),那是因为,正如您所说,它将是两者中移动速度最快的,这更符合我的子弹概念。
请注意,如果在将来您拥有更多的平台,并且这些平台本身需要无法相互隧道,但您注意到它们正在隧道(即使速度较慢),那么启用平台(而不是红色主体)将是我选择的方法。