簡體   English   中英

Box2d | setContactListener不起作用

[英]Box2d | setContactListener not working

我將聯系人監聽器設置為我的世界,由於某種原因,夾具發生沖突時不會被調用。 我可以確認固定裝置確實與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();
}

您的FixtureDef中缺少filterdata。 您必須設置類別位和掩碼位。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM