2012-12-22 19 views
0

我有一个Box2DWeb模拟自定义形状的身体,但它根本不与其他身体交互。调试绘图显示检测到碰撞,但不起作用。阅读自定义形状我没有找到任何设置来启用碰撞,我不知道什么是错的。自定义形状身体像这样创建的,我也贴的例子hereBox2dWeb自定义形状交互

bodyDef = new b2BodyDef; 
bodyDef.type = b2Body.b2_dynamicBody; 
bodyDef.position.x = canvas.width/30/2; 
bodyDef.position.y = 2; 
body = world.CreateBody(bodyDef); 
v = [[2,0], 
[2,2], 
[0,2], 
[0,3], 
[2,3], 
[2,5], 
[3,5], 
[3,3], 
[5,3], 
[5,2], 
[3,2], 
[3,0]]; 
vecs = []; 
for(i=0;i<v.length;i++){ 
cc = new b2Vec2(); 
cc.Set(v[i][0],v[i][1]); 
vecs[i] = cc; 
} 
fixDef.shape = new b2PolygonShape; 
fixDef.shape.SetAsArray(vecs,vecs.length); 
body.CreateFixture(fixDef); 

回答

1

的Box2D只知道如何处理凸多边形,所以你必须从多个夹具帐户使十字形用于凹面部分。例如,您可以在中间有两个相互交叉的长矩形。