java - 带 ARM 的 Box2d 旋转关节车辆

标签 java android box2d

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

enter image description here

如您所见,有:

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

ARM 在所示 anchor 中心点通过旋转关节与车辆主体连接,该 ARM 可以上下移动(具有以下角度限制),因此您可以看到它只能在 90 度内移动。

我的问题是,我通过施加角脉冲来移动这个 ARM ,它有效,我可以移动 ARM ,但它不断落到默认位置。我正在努力如何“禁用”关节,因此只能使用我的 Controller 移动 ARM ,这样它就不会受到重力的影响,因此玩家可以稍微向上移动 ARM ,并且 ARM 应该保持在这个位置,而不是落下。

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

最佳答案

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

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

在我看来,制作 ARM 的更好方法是使用旋转关节电机。您可以找到一些教程 there在“旋转关节电机”部分中。您可以启用/禁用电机并更改其速度运行时间以模拟车辆逻辑。此外,更改关节的运行时上限/下限也可能有用,以防止在不执行 Action 时 ARM 移动。实现此目的的另一种方法是将电机速度设置为零,这会将电机转化为某种摩擦力。

关于java - 带 ARM 的 Box2d 旋转关节车辆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549511/

相关文章:

lua - 宇宙飞船的二维轨迹规划与物理

cocos2d-iphone - 如何翻转复杂的 box2d 夹具?

java - 无法理解或实现信号量

android - 在android中创建动态表。新 View 与充气机

android - SQLite 与 ICU [编译]

android - 无法更改 Android 应用程序的默认图标?

Java在线判断错误解决方法

java - jackson :如何仅序列化带注释的属性

java - Java strictfp 修饰符对现代 CPU 有什么影响吗?

box2d - 什么是相当于 Box2D 传感器主体的 Sprite Kit?