有人可以帮助我吗?
我想在游戏画面中看到光线投射(用于调试......)。
实现这一目标的最佳方法是什么? 请注意我使用“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;
}
答案 0 :(得分:4)
我现在用ShapeRendrer调试它:
strcpy
我只是将它添加到我的敌人所在的同一个班级。
我也照顾点(Vector2):
shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.line(rayStart,rayEnd);
shapeRenderer.setColor(Color.RED);
shapeRenderer.end();
当我的敌人移动时,要更新。