阻止 btKinematicCharacterController 滑下斜坡

Stop a btKinematicCharacterController from sliding down slopes

我不确定这是否是 post 的正确论坛;我在考虑游戏开发网站。

我正在 LibGDX (Java) 中开发一款游戏,我已经设置了 btKinematicCharacterController 来控制玩家。这处理了跳跃、行走和其他一切。

但是,我遇到了一个问题。想象角色站在斜坡上——即使是非常缓的斜坡。角色会慢慢滑下斜坡,这对我的游戏目的来说非常烦人(而且,我想,大多数。)这是因为如果玩家只想站在斜坡上,他们不能。

我认为发生这种情况是因为碰撞检测分辨率。玩家可能会非常轻微地从地板上掉下来,并且由于它在斜坡上,然后会沿着斜坡的法线被推出 这意味着,简单地说,他们会被推出顺着咯。

我的实际玩家模型是一个胶囊,btKinematicCharacterController我使用了一个幽灵对象。

那么我怎样才能确保我的角色不会从斜坡上滑下来呢?当然,它还需要有物理特性,这样它才能跳跃,并与其他物体碰撞。

一种流行的方法是disable gravity when there are >=1 platforms under the character's foot

可以通过以下方式完成:-

另一种方法是 hard code it(link 进行简短讨论 - 2D Metroid 相关),但这是一项艰巨的工作,并且在很大程度上取决于舞台设计。

This video 可能会有帮助。它是 Unity,与 Bullet 无关,但似乎适用。

我对这个问题也很感兴趣。不能解决的请不要采纳
To reader,如果有更好的答案,欢迎交流。