阻止btKinematicCharacterController向下滑动
问题描述:
我不确定这是否是正确的论坛发布此;我正在考虑游戏开发网站。阻止btKinematicCharacterController向下滑动
我正在LibGDX(Java)开发游戏,并且我设置了一个btKinematicCharacterController
来控制玩家。这可以处理跳跃,走路和其他事情。
但是,我遇到了一个问题。想象一下,角色站在一个斜坡上 - 即使是非常渐进的角色。角色会慢慢滑下斜坡,这对我的游戏来说非常烦人(而且,我想大多数情况下)。这是因为如果玩家想站在斜坡上,他们不能。
我认为这是由于碰撞检测解决方案。玩家可能会轻微地落在地板上,因为它在斜坡上,所以会沿着法线的法线推出。这意味着,只是,他们会被轻微推。
我的实际玩家模型是一个胶囊,我使用一个鬼物体作为btKinematicCharacterController
。
那么我怎样才能确保我的角色不会滑倒斜坡?当然,它仍然需要物理,以便它可以跳跃,并与其他物体相撞。
答
其中一种流行的方法是disable gravity when there are >=1 platforms under the character's foot。
- 传感器(
setSensor(true)
+碰撞回调)
有关碰撞回调的更多信息:http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Collision_Callbacks_and_Triggers - 射线测试:http://bulletphysics.org/mediawiki-1.5.8/index.php/Using_RayTest
另一种方法是 - :
可以通过做到hard code it(链接到一个简短的讨论 - 2D Metroid相关),但它是一项艰苦的工作,并严重依赖舞台设计。
This video可能会有所帮助。它是Unity,与Bullet无关,但似乎适用。
我对这个问题也很感兴趣。如果没有解决,请不要接受。
给读者,如果有更好的答案,随时分享。
你碰巧知道调用了什么'setSensor(true)'? –
@Jacob Garby我非常确定:在角色下附加一个新的形状/身体。 ....与http://www.iforce2d.net/b2dtut/jumpability相同的概念,请在此图片周围寻找内容http://www.iforce2d.net/image/jumpability-player-body.png。 (这是Box2D链接,但适用。) – javaLover
谢谢。我目前无法测试,但当我在大约五个小时后回家时,我会检查这一点。 –