2010-08-03 85 views
0

我正在使用Box2D和cocos2D的iPhone平台游戏机。Box2D和平台游戏机的声波状物理学

我试图找出一种方法来创建类似的行为,我的受控角色是在刺猬索尼克游戏中发现的,但仍然使用Box2D物理库,因为我想要投射物和某些级别的物体根据行为到逼真的物理学,以及涉及受控角色的特定情况(跳跃,滚入物体等)。

我遇到的主要问题是当角色穿过凸曲线并保持与地面的接触感,直到距离它达到相当大的距离时保持在地面上。我只想让角色在地面上对左右命令作出反应,但当我们走过一些微小曲线时,我的形状往往会离开地面,这样反应时间会暂时延迟,直到与我们重新建立联系。在视觉上没有分离,但它足以改变在地面上的状态。另外,角色并不以我想要的方式“拥抱”更大的曲线。

我试过在地面上施加一个额外的向下的力量,但它对于较大的曲线不够快,足够大的力量会有效干扰角色的正常运动。对这些问题有什么想法?

回答

0

根据我的经验,获得真正的控制台般的感觉需要你创建不切实际的物理,尤其是玩家角色。

我相信在box2d中,您可以使用冲动来破解移动系统,同时仍然可以使用碰撞检测。这是要么,要么让你的角色成为一个不动的物体,而要自己动手。我忘了哪些似乎对我有用。这已经过去了几个月;)我相信在某些情况下,我也在y轴上做了一些无效向量来修复错误(斜率?)。

如果您的运动在一般情况下正常工作,您可以在地面与曲线接触时进行移动,这是一种特殊情况,您自己处理物理场景,并且只能在现实世界中进行碰撞检测。

另一种选择是使大多数物体使用“假”物理,并且仅将box2d用于碰撞检测或“真实”物体。

+0

现在我正在用手设置速度矢量,当玩家与地面接触时。当玩家离开地面时,我让box2d接管。真正的问题在于告诉玩家何时离开地面(从悬崖跳下或从悬崖上跳下)与离开地面的微小时刻有关,因为速度使玩家离开曲线并确保玩家跟随曲线在附近。 – rpeck1682 2010-08-04 00:28:01

+0

@ rpeck1682:我发现手动控制速度在某些情况下似乎没有我想要的效果。冲动可能有同样的问题。斜坡是我遇到的问题,因为我希望它们的行为与普通地面完全相同,与您案例中的曲线类似。我得出的结论是,我不得不在地面上自己处理所有的物理,或者至少所有的非平坦物理物理。不仅仅是冲动,而是完全处理角色上的所有更新,并且只使用box2d进行命中/扫描测试。在尝试这个之前我放弃了,尽管... – 2010-08-04 20:07:06

+0

好的,今天我改变了很多东西。我开始使用力量而不是设置速度向量。角色在地上时我会使重力失效。我只对x轴施加力,除了我实施的地面拥抱正常力。我调整了它,以便在尝试颠倒方向时加速度更高,所以转身很快。我改变了我的控制代码,以便您仍然可以快速改变方向,除非您明确跳转。我还添加了一个滚动状态,让角色变成逼真的物理。似乎目前运作良好。 – rpeck1682 2010-08-05 04:15:14