【问题标题】:Making a unicycle with Box2D用 Box2D 制作独轮车
【发布时间】:2013-06-05 10:03:22
【问题描述】:

我对 Box2D 还很陌生,并试图找出制作独轮车的最佳方法。独轮车基本上分为两部分,轮子和杆(带座杆等)。我尝试用旋转接头将两者连接起来,并使用电机驱动车轮,效果很好,除了阀杆会受到车轮运动的力。我希望能够直接控制阀杆的旋转(通过 iPhone 上的加速度计),并且让它不受轮子运动的影响,除了根据轮子的位置保持其位置。

最好的方法是什么?你如何控制 b2Body 的旋转?我应该改用距离关节吗?任何帮助将不胜感激。

【问题讨论】:

    标签: iphone cocos2d-iphone box2d


    【解决方案1】:

    我看到了几条路线,具体取决于您的需要。哪种方式更可取取决于您和您的游戏。

    1.修复茎的旋转

    对于stem 的bodyDef,将fixedRotation-flag 设置为true。这可以防止阀杆发生任何旋转(无论是来自电机接头的力、(减速)加速还是碰撞。

    您必须手动设置每个刻度的旋转。如果纯粹基于 iPhone 的位置,这很容易。如果您仍想将其他因素计算在内,事情可能会变得更复杂(例如,如果茎在一个方向上倾斜得太远,则增加旋转)到有些痛苦(碰撞会影响旋转)。

    2。不断对阀杆施加平衡力 每个刻度都读取茎的角速度并施加反作用力来平衡茎。

    虽然正确实施这可能会更复杂(总是找到合适的力来应用等),但它可能会导致更真实的行为,因为固定旋转显然消除了杆运动会产生的大多数反应以及杆本身的情况受到世界的影响。

    3。实际上不要使用轮子 虽然您的布局是独轮车的明显选择(并且似乎是各种角色的某种流行选择),但从游戏的角度来看,它可能不是最佳选择。

    相反,您可以将阀杆和车轮固定装置组合在一个主体中(或使用棱柱接头连接它们)并通过对该主体施加力来产生所有运动。底部的传感器可以通知您与地面的接触,以确定是否要施加移动力。

    通过这种方式,您可以摆脱车轮产生的所有力(在游戏过程中,对杆的力可能不是唯一不受欢迎的力)并且仍然让它对所有外力做出反应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多