【问题标题】:How to make a moving object "stick" to a stationary object in box2D如何使移动物体“粘”在box2D中的静止物体上
【发布时间】:2010-10-20 22:25:38
【问题描述】:

我一直在为 iPhone 使用 cocos2D 中的 box2D 示例项目,我想知道 box2D 是否是合适的引擎,用于在移动对象完成特定移动时使移动对象“粘”到静止对象方向。

这是我想要实现的简化:我有 MovingObject,一个动态刚体,当施加足够的力时它会垂直移动。随着 MovingObject 移动,它可能会与静态对象 StationaryObject 重叠。当重力将 MovingObject 的速度减小到零以使其不再移动时,我希望 MovingObject 仅在与 StationaryObject 重叠时保持在原处。如果对象不重叠,MovingObject 应该开始根据重力向下向地面移动。在下降过程中,如果 MovingObject 在任何时候与 StationaryObject 重叠,它应该停止下降并保持在该位置,就好像它卡在 StationaryObject 上一样。

我能够让 MovingObject 根据我施加的力移动,但不确定如何让它在到达上升的顶部时停止并停留在那里,假设它与 StationaryObject 重叠。

目前,我正在尝试使用简单的方形/框对象,但最终两个 MovingObject StationaryObject 都将被定义为非常不同的复杂多边形形状。

提前感谢您为实现这一目标提供的任何见解和/或建议。

【问题讨论】:

    标签: cocos2d-iphone collision-detection box2d game-physics box2d-iphone


    【解决方案1】:

    听起来您需要在“MovingObject”“上升”时更改用于“MovingObject”的夹具类型,然后在“下降”时更改它,以便它做出不同的反应(重叠)。

    通过“重叠”,听起来您想在平台游戏(即马里奥兄弟)中实现类似于“单面平台”的东西 - 我建议为初学者研究单面平台的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2011-12-03
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多