【问题标题】:libGDX contact script not workinglibGDX 联系人脚本不起作用
【发布时间】:2018-06-06 17:38:57
【问题描述】:

当任何 2 个物体相互接触时,不会调用此接触脚本。我试过在任何物体接触时简单地调用该方法,但这也不起作用。

world.setContactListener(new ContactListener() {

        @Override
        public void beginContact(Contact contact) {
            Fixture f1 = contact.getFixtureA();
            Fixture f2 = contact.getFixtureB();

            Body b1 = f1.getBody();
            Body b2 = f2.getBody();

            if((b1.getUserData() == "player" && b2.getUserData() == "Enemy") || (b1.getUserData() == "player" && b2.getUserData() == "Enemy"))  {
                player.death();
                hud.death();
        }
        }

        @Override
        public void endContact(Contact contact) {

        }

        @Override
        public void preSolve(Contact contact, Manifold oldManifold) {

        }

        @Override
        public void postSolve(Contact contact, ContactImpulse impulse) {

        }
    });

【问题讨论】:

  • 在您的示例代码中,您的两个条件都使用 b1 作为播放器。不应该是 b1 在一个和 b2 在另一个。

标签: libgdx


【解决方案1】:
  1. 确保玩家和敌人的身体被定义为Dynamic Body
  2. 检查您的碰撞过滤。
  3. 检查身体是否处于活动状态。
  4. 还要检查您是否正确设置了每个主体的用户数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2014-05-17
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多