我对 Box2D 相当陌生,并试图找出制作独轮车的最佳方法。独轮车基本上分为两部分,轮子和杆(带座杆等)。我尝试用旋转接头将两者连接起来,并使用电机驱动车轮,效果很好,除了阀杆会受到车轮运动的作用力。我希望能够直接控制阀杆的旋转(通过 iPhone 上的加速度计),并且让它不受轮子运动的影响,除了根据轮子的位置保持其位置。
做这个的最好方式是什么?你如何控制 b2Body 的旋转?我应该改用距离关节吗?任何帮助,将不胜感激。
我对 Box2D 相当陌生,并试图找出制作独轮车的最佳方法。独轮车基本上分为两部分,轮子和杆(带座杆等)。我尝试用旋转接头将两者连接起来,并使用电机驱动车轮,效果很好,除了阀杆会受到车轮运动的作用力。我希望能够直接控制阀杆的旋转(通过 iPhone 上的加速度计),并且让它不受轮子运动的影响,除了根据轮子的位置保持其位置。
做这个的最好方式是什么?你如何控制 b2Body 的旋转?我应该改用距离关节吗?任何帮助,将不胜感激。
我看到了几条路线,具体取决于您的需要。哪种方式更可取取决于您和您的游戏。
1.固定阀杆的旋转
对于茎的bodyDef,将fixedRotation-flag 设置为true。这可以防止阀杆的任何旋转(无论是来自电机接头的力、(减速)加速还是碰撞)。
比您必须手动设置每个刻度的旋转。如果纯粹基于 iPhone 的位置,这很容易。如果您仍想计算其他因素,事情可能会变得更复杂(例如,如果茎在一个方向上倾斜太远,则增加旋转)到有些痛苦(碰撞会影响旋转)。
2. 不断向阀杆 施加平衡力 每个刻度都读取阀杆角速度并施加反作用力以平衡阀杆。
虽然正确实施这可能会更复杂(总是找到合适的力来应用等),但它可能会导致更现实的行为,因为固定旋转显然消除了杆运动会产生的大多数反应以及杆本身如何受到影响世界。
3. 实际上不要使用轮子 虽然你的布局是独轮车的明显选择(并且似乎是所有类型角色的某种流行选择),但从游戏的角度来看,它可能不是最佳选择。
相反,您可以将阀杆和车轮固定装置组合在一个主体中(或将它们与棱柱接头连接)并通过对该主体施加力来产生所有运动。底部的传感器可以通知您与地面的接触,以确定是否要施加移动力。
通过这种方式,您将摆脱车轮产生的所有力(对杆的力可能不是游戏中唯一不受欢迎的力),并且仍然让它对所有外力做出反应。