2016-12-23 6 views
1

Kann mir jemand helfen?LibGdx RayCast box2d debug (visuell auf dem Bildschirm)

Ich möchte den Raycast im Spielbildschirm (zum Debuggen ..) sehen.

Was ist der beste Weg, um das zu erreichen? Bitte beachten Sie, dass ich "box2d" verwende. und die Art, wie ich Sachen auf den Bildschirm zeichne, ist mit Animation. Also bedeutet es, dass ich eine "EdgeShape" erstellen muss? und dann ist das meine Debug-Zeile?

Bitte, wenn es irgendwelche Vorschläge gibt, die Sie geben können, oder Ideen, die ich wirklich nichts dagegen habe, wie zu implementieren, alles, was ich will, ist eine ordnungsgemäße Möglichkeit, Raycast zu sehen. Ich konnte keinen guten Weg finden, den Raycast zu zeichnen, ich sah jemanden, der batch.draw() verwendet; - aber ich denke, dass es für mich nicht funktionieren wird, weil meine Spielweise mit box2ds Formen und Animationen funktioniert? ist das richtig?

Vielen Dank!

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; 
     } 

Antwort

3

ich es debuggen jetzt mit ShapeRendrer:

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

ich es nur zu der gleichen Klasse hinzuzufügen, wo mein Feind ist.

Und ich auch die Punkte kümmert (die Vector2):

world.rayCast(rayCastCallback, p1, p2); 

aktualisiert werden, wie mein Feind bewegt.

Verwandte Themen