【问题标题】:Box2d | setContactListener not workingBox2d | setContactListener 不工作
【发布时间】: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();
}

【问题讨论】:

    标签: java android libgdx box2d


    【解决方案1】:

    您的 FixtureDef 中缺少过滤器数据。您必须设置类别位和掩码位。

    试试这个:

    fixtureDef.filter.categoryBits = 1;
    fixtureDef.filter.maskBits = 1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多