我正在编写一个游戏,其中圆形形状落在由几百个顶点组成的b2LoopShape上。
我正在尝试通过使用联系人监听器确定我的着陆是否平滑(沿边缘着陆或垂直于边缘)但是无法正确处理。
有什么想法吗?
答案 0 :(得分:0)
环形由多个边缘段组成。您需要遍历所有边缘线段,并找到每个边缘上距离圆心的最近点。所有这些中最接近的应该是实际用于碰撞的点。如果它位于它所属的边缘段的“尖端”之一,则圆圈到达边缘的末端。如果它位于边缘中间的某个位置,它会顺利降落。
我可能会误解你的'平滑'是什么意思,但无论如何如果你做到了以上,你将会得到实际被击中的边缘的两个端点,以及圆的行进方向,所以你可以用这些来决定它是否顺利。