Box2D Flash引擎碰撞检测问题

时间:2011-08-28 23:32:47

标签: flash actionscript-3 actionscript box2d

我之前见过这种类型的问题,但不知道解决方案是什么。 我已将此三角形添加到b2Body对象(下面的主体变量)中,并且碰撞检测不起作用。形状只是相互通过,我无法发布整个代码,因为它非常大。

     polyDef.vertexCount = 3;
     polyDef.vertices[0].Set( 1, 2);
     polyDef.vertices[1].Set(1, 1);
     polyDef.vertices[2].Set(-9, 1);
     body.CreateShape(polyDef);

1 个答案:

答案 0 :(得分:1)

问题是顶点的顺序。

就像Allan所说,在Box2D中,顶点应该按顺时针顺序排列,所以看起来(1,2), (1,1), (-9,1)的顺序正确。

但是,由于y坐标是颠倒的,因此该顺序实际上是CCW。

因此,订单应该像这样改变。

polyDef.vertexCount = 3;
polyDef.vertices[0].Set( 1, 2);
polyDef.vertices[1].Set(-9, 1);
polyDef.vertices[2].Set(1, 1);
body.CreateShape(polyDef);