【问题标题】:Stop a btKinematicCharacterController from sliding down slopes阻止 btKinematicCharacterController 滑下斜坡
【发布时间】:2017-09-28 04:51:25
【问题描述】:

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

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

但是,我遇到了一个问题。想象角色站在一个斜坡上——甚至是一个非常平缓的斜坡。角色会慢慢滑下斜坡,这对我的游戏来说非常烦人(我想,最烦人的)这是因为如果玩家只想站在斜坡上,他们就做不到。

我认为这是由于碰撞检测解决方案而发生的。玩家可能会非常轻微地从地板上掉下来,并且由于它在斜坡上,然后会被沿着斜坡的法线推出。这意味着,简单地说,他们会被轻微地推动。

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

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

【问题讨论】:

    标签: java libgdx game-engine game-physics bullet


    【解决方案1】:

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

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

    另一种方法是hard code it(链接到一个简短的讨论 - 与 2D Metroid 相关),但这是一项艰巨的工作,并且严重依赖于舞台设计。

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

    我也对这个问题很感兴趣。不解决请不要采纳。
    对于读者,如果有更好的答案,请随时分享。

    【讨论】:

    • 你知道setSensor(true)被调用了什么吗?
    • @Jacob Garby 我很确定:在角色下方附加的新形状/身体上。 .... 与iforce2d.net/b2dtut/jumpability 相同的概念,在此图像iforce2d.net/image/jumpability-player-body.png 周围寻找内容。 (它是 Box2D 链接,但适用。)
    • 谢谢。我目前无法测试,但我会在大约五个小时后回家检查一下
    • @Jacob Garby 花点时间慢慢编写代码。 Bullet 的回调非常难以使用,尤其是当您以最高性能为目标时。如果这是您的第一次,甚至可能需要几天时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多