Box2D,libGDX斜率碰撞

时间:2014-07-09 10:00:17

标签: libgdx box2d collision

我使用ChainShape为我的平台创建了一个基于Box2D的地图,它具有不同的角度斜率(不超过45°)。 我的问题是与我的球员的斜坡碰撞。玩家的身体有2个固定装置,一个矩形和一个圆圈。每当我移动玩家时(方法无关紧要,结果都是一样的)我停在斜坡的中间,我慢慢滑下来。我设法暂时解决这个问题,但这篇文章的主要原因是,每当我离开斜坡时,我都会射击,因为我仍然有一些冲动从前一个运动中消失。当我进入一个向下的斜坡,或者当我停在斜坡上并且我再次开始移动时,会发生同样的事情。

输入/离开斜坡:

(红线是所需的动作,黑色是我现在的动作)

http://i.imgur.com/7hiIwug.png?1

开始在斜坡上移动:

(红线是所需的动作,黑色是我现在的动作)

http://i.imgur.com/QBXejam.png

你能帮帮我解决这个问题吗?我不介意你的答案是否详细。

1 个答案:

答案 0 :(得分:0)

我发现阻止角色在斜坡上滑动的最简单方法是在玩家释放移动按钮并且身体接地时将身体线性阻尼设置为无限,我使用射线跟踪测试。

关于角色没有跟随斜坡的问题,这仅仅是由于动力。当你到达坡顶时,你的身体仍然有一些向上的动量,它必须清除。当你接近下坡时 - 你的身体仍然有一些水平动量要清除。我已经在光线追踪方面取得了一些成功,可以找到低于玩家位置的坡度法线,并手动设置身体的速度以匹配切线,但这不适用于您的应用

关于你的第二个问题,在斜坡上开始运动时,我希望你正在施加直接的水平冲击,即将身体从斜坡上抛出。同样,这可以通过找到玩家站立的坡度梯度并以适当的角度施加力来纠正。