0

我正在图像上创建这样的车辆:

在此处输入图像描述

如您所见,有:

1) 车身主体(红色矩形) 2) 车轮 3) 车辆臂(黑色矩形)

手臂在图示的锚点中心点使用旋转接头与车辆主体连接,这个手臂可以上下移动(有以下角度限制),所以你可以看到它只能移动 90 度。

我的问题是,我正在通过施加角脉冲来移动这只手臂,它可以工作,我可以移动手臂,但它会一直下降到默认位置。我正在努力如何“禁用”关节,因此只能使用我的控制器移动手臂,使其不受重力影响,因此玩家可以稍微向上移动手臂,例如手臂应该保持在这个位置,而不是跌倒。

任何帮助都会很棒,谢谢。

4

1 回答 1

3

禁用重力影响的最佳方法是gravityScale在 b2BodyDef 处设置为零。但是这个参数只出现在 Box2D 的最后一个版本中,而且,也许你的 java 端口中没有这样的东西

无论如何,我认为你的重力想法不太好。它不是物理的,不现实的,因此您会发现一些相关的麻烦。例如,如果除重力之外的其他力会影响手臂怎么办?这将导致所有相同的问题。

在我看来,制作手臂的更好方法 - 使用旋转关节电机。您可以在“旋转接头电机”部分找到一些教程。您可以启用/禁用电机并更改其速度运行时间以模拟车辆逻辑。此外,还可以更改关节的运行时间上限/下限,以防止手臂在未执行任何操作时移动。实现这一点的另一种方法 - 将电机速度设置为零,这会将电机转换为某种摩擦力。

于 2013-01-28T18:37:53.113 回答