【问题标题】:Box2D, libGDX slope collisionBox2D、libGDX 斜坡碰撞
【发布时间】:2014-07-09 10:00:16
【问题描述】:

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

进入/离开斜坡:

(红线是想要的动作,黑色是我现在的动作)

开始在斜坡上移动:

(红线是想要的动作,黑色是我现在的动作)

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

【问题讨论】:

  • 车身上的摩擦力是什么?可以发一个MCVE 让我们一起玩吗?
  • 对不起,我不能发布它,我几乎没有时间。身体的形状显示在链接的图片上,它的基本属性只有更高的质量,我手动更改了。让我重新提出这个问题。您将如何实现我原始帖子中链接图片上显示的所需运动。我正在尝试制作一个老式的运动平台游戏。也许 Rogue Legacy 运动系统是我想做的一个很好的例子。请记住,我计划使用不同的坡度。

标签: libgdx box2d collision


【解决方案1】:

我发现阻止角色在斜坡上滑动的最简单方法是在玩家释放移动按钮并且身体接地时将身体线性阻尼设置为 Infinity,我正在使用光线追踪来测试这一点.

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2013-08-05
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多