Box2D的,libgdx - 球员身体有飞船的相对速度,但仍然能够走动
问题描述:
我创建一个自上而下的2D游戏和我使用Box2D的模拟物理,我的问题是这样的:Box2D的,libgdx - 球员身体有飞船的相对速度,但仍然能够走动
我该如何让玩家与我的太空船保持相对的速度,并且仍然能够在玩家移动的同时在玩家身边移动?
我已经在下面插图。
illustration
我迄今为止尝试:
设置玩家身上的线速度是一样的船,这使得相当多附在船舶的球员,没有我能够移动玩家,因为我在每次更新打勾后设置线速度。
尝试关节似乎并不是我正在寻找的东西,我可能是错的,我尝试了WeldJoint和FrictionJoint在我进入这艘船时添加它们。但是,由于焊接在船上,所以我无法移动球员。
非常感谢您的帮助!
答
只有当您的播放器控制器没有按下时,“设置播放器机身的线速度与船只相同”如何?
如果使用scene2d你的UI,这些Actors有isTouched方法。或者,如果你只是使用的按钮,你可以创建boolean场和集,真正如果你的任何控制按钮的感动和假如果不是。
因此,您的播放器控制器方法可能如下所示。
void playerController() {
if (!playerControllerBottonTouched) { // or actor.isTouched()
playerBody.setLinearVelocity(shipBody.getLinearVelocity().x,
shipBody.getLinearVelocity().y);
} else {
playerBody.applyLinearImpulse(*impulse that you want*);
}
}
是的,那实际上工作得很好,谢谢! – Michael