Отладка LibGdx RayCast box2d (визуально на экране)

Кто-нибудь может мне помочь?

Я хочу видеть raycast на экране игры (для отладки...).

Каков наилучший способ добиться этого? Обратите внимание, что я использую "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;
      }

person Nimitack    schedule 23.12.2016    source источник


Ответы (1)


Сейчас я отлаживаю его с помощью ShapeRendrer:

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

Я просто добавляю его в тот же класс, где мой враг.

И я также забочусь о точках (Vector2):

world.rayCast(rayCastCallback, p1, p2);

Чтобы быть в курсе, как мой враг движется.

person Nimitack    schedule 24.12.2016