如何在box2D中使移动物体“粘住”静止物体

时间:2010-10-20 22:25:38

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

我一直在试验iPhone的cocos2D中的box2D示例项目,并且想知道当移动物体完成移动时,box2D是否是用于使移动物体“粘住”静止物体的合适引擎方向。

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

我可以让MovingObject按照我应用它的力量移动,但不确定如何使它停止并一旦到达其上升的顶部就停留在那里,假设它与StationaryObject重叠。

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

提前感谢任何见解和/或建议。

1 个答案:

答案 0 :(得分:0)

听起来你会想要改变用于“MovingObject”的夹具类型,当它“升序”时,然后在它“降序”时改变它,这样它就会有不同的反应(重叠)。

通过“重叠”听起来你想在平台游戏中实现类似“单面平台”的东西(即马里奥兄弟) - 我建议为初学者寻找单侧平台的解决方案。 / p>