0
我在我的世界中设置了一个联系人侦听器,并且由于某些原因,当灯具碰撞时它不会被调用。我可以确认灯具确实与box2dDebugRenderer发生碰撞。我怀疑问题“可能”是每个球员的框架,我删除夹具并添加一个新的(因为没有办法(我知道)调整大小/重新定位夹具)。我将听众添加到正确的世界,世界正在正确地工作,行为正在被称为(当然)。谢谢你的帮助!Box2d | setContactListener不起作用
这就是所谓的播放器类中的每个帧:在您的FixtureDef
private void createFixture(boolean remove) {
if (remove) {
body.destroyFixture(fixture);
}
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyDef.BodyType.KinematicBody;
bodyDef.position.set(0, 0);
body = world.createBody(bodyDef);
FixtureDef fixtureDef = new FixtureDef();
CircleShape circle = new CircleShape();
circle.setRadius(getWidth()/2);
circle.setPosition(new Vector2(0, getY() + getHeight()/2));
fixtureDef.shape = circle;
fixture = body.createFixture(fixtureDef);
circle.dispose();
}