在下面的代码中添加传感器灯具有两个问题。重新定位矢量b2Vec2(0,50)
不起作用;第二个夹具仍然以身体的原点为中心。两种灯具都可以在调试模式下看到,但我无法将传感器灯具移动到主灯具的底部。在Box2Dweb中添加第二个灯具作为传感器Body
其次,当isSensor
是true
我没有收到任何PostSolve
事件。当它被设置为false
时,我会得到相应的事件(伴随着碰撞)。我如何使这个传感器不会与其他物体碰撞,但仍会引发事件。感谢您的帮助。
// FIXTURE DEF
var fixDef = new box2d.b2FixtureDef();
fixDef.shape = new box2d.b2PolygonShape;
fixDef.shape.SetAsBox((25/2/SCALE), (46/2/SCALE));
fixDef.density = 0.99;
fixDef.friction = 0.39;
fixDef.restitution = 0.0;
fixDef.userData = "SBody";
fixDef.filter.categoryBits = CAT.SOLDIER;
fixDef.filter.maskBits = CAT.GROUND;
this.view.body.CreateFixture(fixDef);
// ADD FOOT SENSOR
fixDef.density = 0.1;
fixDef.friction = 1.;
fixDef.restitution = 0.1;
fixDef.userData = "Foot";
fixDef.shape.SetAsBox((10/2/SCALE), (100/2/SCALE), new box2d.b2Vec2(0,50), 0);
fixDef.isSensor = true;
fixDef.filter.categoryBits = CAT.SOLDIER_FOOT_SENSOR;
fixDef.filter.maskBits = CAT.SHIP | CAT.GROUND;
this.view.body.CreateFixture(fixDef);