有人可以帮助我吗?
我想在游戏屏幕上看到光线转换(用于调试……)。
实现该目标的最佳方法是什么? 请注意,我使用“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;
}
最佳答案
我现在用 ShapeRenderer 调试它:
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);
随着我的敌人的移动而更新。
关于java - LibGdx RayCast box2d 调试(屏幕上可见),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41301323/