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);
随着我的敌人的移动而更新。
有人可以帮助我吗?
我想在游戏画面中看到光线投射(用于调试..)。
实现该目标的最佳方法是什么? 请注意,我使用 "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);
随着我的敌人的移动而更新。