gpt4 book ai didi

java - Box2D - 角色粘在物体的侧面

转载 作者:行者123 更新时间:2023-12-01 13:08:52 30 4
gpt4 key购买 nike

我正在使用带有 libgdx 的 Box2D。我对默认碰撞操作有疑问。当我跳跃或击中物体顶部时,一切正常。我的物体不粘。如果它到达顶部,它就会站在上面。如果触底,它就会回落。但如果它击中任何一侧,只要我朝那个方向移动,我的物体就会粘住。换句话说,当它与方 block /墙的侧面碰撞时,重力对其没有影响。我做了一些研究,但所有解决方案都说要使用 b2Settings,但我不能将其与 libgdx 一起使用。有什么办法可以解决这个问题吗?我用来移动角色(向左移动)的代码如下:

level.character.body.setLinearVelocity(
-level.character.terminalVelocity.x,
level.character.body.getLinearVelocity().y);

这是一个例子。正如您所看到的,它粘在砖 block 上而不是掉落。 (我的角色目前是一枚硬币:p)

Sticking to the wall

最佳答案

不要使用 SetLinearVelocity,而是尝试使用 ApplyForce 或 ApplyImpulse 来移动物体。问题是 SetLinearVelocity 允许您创建不切实际的情况,例如在这种情况下,当球撞到墙壁时,它应该停止并且水平速度实际上应该为零,但您忽略了自然结果并说球没有停止根本没有,而且它仍在移动。

请注意,即使使用ApplyForce或ApplyImpulse,如果力足够强并且固定装置之间有足够的摩擦力,您仍然可能会遇到这个问题(就像在现实世界中一样,如果您将某物推到墙上足够用力并且表面不太滑,可以防止它掉落)。

关于java - Box2D - 角色粘在物体的侧面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049250/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com