java - Box2d 传感器不检测接触

标签 java libgdx box2d contacts

我的问题:

当我制作固定传感器时,武器主体停止检测接触。

ContactListener 代码:

void preSolve(contact: Contact, oldManifold:Manifold){

        switch (fixA.getFilterData().categoryBits | fixB.getFilterData().categoryBits) {
            case Game.WEAPON_BIT | Game.ENEMY_BIT: bodyDeleteList.add(contact.getFixtureA().getBody());
            System.out.println("Contact!");  // this never prints
            break;
        }
}

当我使 body 固定装置成为常规(评论fixtureDef.setFixtute(true))时,一切都变得很好并且发生接触并进行检测。

文档说:

/** A sensor shape collects contact information but never generates a collision response. */

但事实并非如此。所以也许我忘记了什么。

最佳答案

通过将此代码添加到 beginContact(..) 方法来解决它。

很奇怪,传感器只在 beginContact(..) 方法中收集联系信息

void beginContact(contact: Contact){

     switch (fixA.getFilterData().categoryBits | fixB.getFilterData().categoryBits) {
            case Game.WEAPON_BIT | Game.ENEMY_BIT: bodyDeleteList.add(contact.getFixtureA().getBody());
            System.out.println("Contact!");  // this prints
            break;
     }
}

关于java - Box2d 传感器不检测接触,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648938/

相关文章:

java - 将 targetSdkVersion 提高到 28 时,在路径 : DexPathList 上找不到类 "com.google.android.gms.common.R$string"

java - 如何在空白模式之间进行选择?

java - 按下一个键后, View 下降,仅在 S3

java - 了解 libGDX 投影矩阵

android - 使用阶段的 LibGDX 屏幕转换

javascript - HTML 5 游戏开发工具

java - 检查鼠标边界的更有效方法

java - LibGdx Box2d collison 与 Sprite 不匹配

c++ - 即使在子弹模式下也能穿透物体

java - 如何在 html 上的 Libgdx 中处理调整大小(GwtApplication)