如何使用持续左右移动的box2d创建一个b2body,当玩家跳到它时它不会倒下?

时间:2014-05-07 10:36:34

标签: cocos2d-iphone box2d game-physics

我正在使用cocos2d与box2d进行平台游戏,其中我的地面体必须连续向左和向右移动,但是当玩家跳到它上面时不会掉落。我无法这样做,当玩家跳到它身上时我的身体会下降。提供一些链接或代码。

enter image description here

1 个答案:

答案 0 :(得分:0)

认为最好的解决方案是为平台移动精灵,而不是平台移动精灵。

不是为跳跃创建一个小平台,而是创建一个延伸到整个坑的矩形。

仅将精灵移动到您希望玩家跳到的区域(即向左和向右移动,以便玩家知道"安全"区域跳跃)。

使用b2ContactListener检测矩形与播放器之间的碰撞。如果他们有联系并且玩家在移动的精灵上,那么就不要做任何不同的事情。

如果他们正在联系且玩家 NOT 超过移动的精灵,请在b2Contact侦听器的PreSolve事件中以及玩家与其接触的整个时间内禁用碰撞响应。玩家应该掉到下面的坑里。

您还可以使用传感器主体为移动平台提供更好的接触机制"而不仅仅是精灵。因此,如果玩家与平台传感器接触,那么#34;和整个维修区的“#34;矩形”,不要在PreSolve事件中做任何事情。否则,如果他们与坑中的"矩形接触,那就让他们通过它。

这有用吗?