[英]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.