Box2D检测2个特定边缘是否接触

时间:2012-06-12 23:25:54

标签: cocos2d-iphone box2d collision-detection game-physics box2d-iphone

我正在使用Box2D处理Cocos2D项目,我试图检测对象上的2个特定边缘何时触摸,例如下面图像中的红色边缘:

enter image description here

我仍在学习碰撞但我了解基础以及如何检测2个特定物体是否接触,但我无法弄清楚如何检测特定边缘。

我想到的一个解决方案是我要检测的边缘上的新创建实体,但我想知道两个红色边缘完全对齐并且框形成矩形。

可能有一种简单的方法可以做到这一点,但我搜索了互联网,发现没有有用的例子。

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

基本上,Box2D检测不是b2Bodies之间的碰撞,而是检测b2Fixtures之间的碰撞。您只需要在b2Bodies(fexture.isSensor = YES)上添加传感器夹具,将其位置设置为所需的点(右边缘仅1​​-2个像素,超出物理形状)并检测两个传感器的触点。我希望这很清楚。

答案 1 :(得分:1)

您可以像这样在每个身体的相关角落添加两个小灯具,并检查两对(红色/红色,蓝色/蓝色)是否同时重叠。圆形夹具很好,调整它们大小是调整匹配精度的简单方法。 enter image description here