LibGdx RayCast box2d调试(屏幕上可视化)

时间:2016-12-23 12:13:02

标签: java android libgdx raycasting

有人可以帮助我吗?

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

实现这一目标的最佳方法是什么? 请注意我使用“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;
      }

1 个答案:

答案 0 :(得分:4)

我现在用ShapeRendrer调试它:

strcpy

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

我也照顾点(Vector2):

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

当我的敌人移动时,要更新。