我不确定这是否是发布此内容的正确论坛;我正在考虑游戏开发网站。
我正在使用LibGDX(Java)开发游戏,我设置了一个btKinematicCharacterController
来控制播放器。这可以处理跳跃,行走等一切。
然而,我遇到了一个问题。想象一下,角色正站在斜坡上 - 即使是非常渐进的斜坡。角色会慢慢滑下斜坡,这对我的游戏来说非常烦人(而且,我想,最多。)这是因为如果玩家想要站在斜坡上,他们就不能。
我认为这是因为碰撞检测分辨率而发生的。玩家可能会轻微地跌落在地板上,因为它在斜坡上,然后沿斜坡的法线推出。这意味着,简单地说,它们会被轻微推动。
我的实际玩家模型是一个胶囊,我使用幽灵对象作为btKinematicCharacterController
。
那么我怎样才能确保我的角色不会滑下斜坡?当然,它仍然需要物理,以便它可以跳跃,并与其他物体碰撞。
答案 0 :(得分:2)
其中一种流行的方法是disable gravity when there are >=1 platforms under the character's foot。
可以通过以下方式完成: -
setSensor(true)
+碰撞回调)另一种方法是hard code it(链接到一个简短的讨论 - 2D Metroid相关),但这是一项艰苦的工作,并且在很大程度上依赖于舞台设计。
This video可能有所帮助。它是Unity,与Bullet无关,但似乎适用。
我对这个问题也很感兴趣。如果不解决,请不要接受 对读者来说,如果有更好的答案,请随时分享。