【发布时间】:2016-08-18 01:41:15
【问题描述】:
我在我的世界上设置了一个联系人监听器,由于某种原因,当灯具发生碰撞时它没有被调用。我可以确认灯具确实与 box2dDebugRenderer 发生碰撞。我怀疑问题“可能”是播放器的每一帧,我删除了夹具并添加了一个新的(因为(因为我知道)无法调整大小/重新定位夹具)。我正在将听众添加到正确的世界,世界正在正常工作,正在调用行为(当然)。谢谢你的帮助!
这在播放器类中被称为每一帧:
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();
}
【问题讨论】: