java移动Box2D实体的简单方法
在纯java中,只需向坐标添加值,如下所示:
object.x += 5;
object.y += 5;
render(object, object.x, object.y);
有什么方法可以对Box2D车身进行此操作吗?因为如果我这么做:
if(Gdx.input.isKeyPressed(Input.Keys.A) && player.getBody().getLinearVelocity().x >= -2.0f) {
player.getBody().applyLinearImpulse(new Vector2(-0.12f, 0.0f), player.getBody().getWorldCenter(), true);
}
然后物体继续朝那个方向运动,直到我施加一个不同的力。那么,有没有办法让它以恒定的速度移动,而不是永远以恒定的速度移动?我尝试过摩擦,但似乎很痛苦
# 1 楼答案
Body有一个setTransform(浮动x、浮动y、浮动角度)方法
所以,玩家。getBody()。setTransform(-0.12f,0.0f,此处为角度)
# 2 楼答案
Peter的代码也可以工作,但我发现了另一种方法,因为setTransform可能会导致潜在的不必要的故障:
无论何时按下一个键,都会设置
velX
或velY
,如果不按下任何键,则默认设置为0