我有一个自定义形状body的Box2DWeb模拟,但它根本不与其他body交互。调试绘图显示检测到冲突,但没有任何效果。在阅读有关自定义形状的文章时,我没有找到任何可以设置来启用碰撞的东西,我不知道哪里出了问题。自定义形体是这样创建的,我还发布了示例here
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);发布于 2012-12-23 06:35:01
Box2D只知道如何处理凸面多边形,因此您必须从多个夹具创建十字形状,以解决凹面截面。例如,你可以有两个在中间相交的长方形。
https://stackoverflow.com/questions/14004779
复制相似问题