LibGdx RayCast box2d 调试(屏幕上可见)

LibGdx RayCast box2d debug (visual on screen)

有人可以帮助我吗?

我想在游戏画面中看到光线投射(用于调试..)。

实现该目标的最佳方法是什么? 请注意,我使用 "box2d"。我把东西画到屏幕上的方式是用动画.. 那么这是否意味着我需要创建一个 "EdgeShape"?然后这是我的调试行?

如果您有任何建议或想法我真的不介意如何实施,请提供,我想要的只是一种查看 Raycast 的正确方法。 我找不到绘制 Raycast 的好方法,我看到有人使用 batch.draw(); - 但我想它对我不起作用,因为那样我的游戏作品就是使用 box2ds 形状和动画?是吗?

非常感谢!

   world.rayCast(callback,     enemy.getBody().getPosition(), 
            new Vector2(enemy.getBody().getPosition().x-500, enemy.getBody().getPosition().y));
   }

   RayCastCallback callback = new RayCastCallback() {
      @Override
      public float reportRayFixture(Fixture fixture, Vector2 point,
            Vector2 normal, float fraction) {

         if(fixture.getBody().getUserData() == ModelType.PLAYER) {
            System.out.println("hey!");
            return 0;
         }
         return -1;
      }

我现在用 ShapeRendrer 调试它:

shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.line(rayStart,rayEnd);
shapeRenderer.setColor(Color.RED);
shapeRenderer.end();

我只是将它添加到我的敌人所在的同一个 class。

而且我还处理了点(Vector2):

world.rayCast(rayCastCallback, p1, p2);

随着我的敌人的移动而更新。