gpt4 book ai didi

java - box2d 、 libgdx - 玩家 body 具有宇宙飞船的相对速度,但仍然能够移动

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:17 26 4
gpt4 key购买 nike

我正在创建一个自上而下的 2D 游戏,并且使用 Box2D 来模拟物理,我的问题是:

如何使玩家保持与我的宇宙飞船的相对速度,并且仍然能够在飞船也在移动的情况下围绕我的玩家移动?

我在下面放了一个插图。
illustration

到目前为止我已经尝试过:

将玩家 body 的线速度设置为与飞船相同,这使得玩家几乎附着在飞船上,而我无法移动玩家,因为我在每次更新后设置线速度。

尝试接头似乎不是我想要的,我可能是错的,我已经尝试了WeldJoint和FrictionJoint,当我进入船时添加它们。但是,由于焊接接头,我无法移动玩家,因为我被焊接到了船上。

预先感谢您的帮助!

最佳答案

仅当您的玩家 Controller 未被按下时,“将玩家 body 的线速度设置为与船相同”怎么样?

如果您使用scene2d对于您的 UI,这些 ActorsisTouched方法。或者,如果您只使用按钮,则可以创建 boolean字段并设置,如果触摸了任何控制按钮,则为 true;如果没有触摸,则为 false

因此,您的播放器 Controller 方法可能如下所示。

void playerController() {
if (!playerControllerBottonTouched) { // or actor.isTouched()
playerBody.setLinearVelocity(shipBody.getLinearVelocity().x,
shipBody.getLinearVelocity().y);
} else {
playerBody.applyLinearImpulse(*impulse that you want*);
}
}

关于java - box2d 、 libgdx - 玩家 body 具有宇宙飞船的相对速度,但仍然能够移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com