【问题标题】:Body lost a velocity component when hitting a wall身体在撞墙时失去了一个速度分量
【发布时间】:2015-04-23 09:47:23
【问题描述】:

我正在使用 Box2D(如果有人感兴趣,可以使用 LibGdx)创建一个 Breakout 游戏。一切都很好,直到球以很小的角度移动时撞到墙上。详情请看图:

我尝试将墙壁摩擦力设置为 0 并将恢复力设置为 1,以及小球的摩擦力和恢复力,但它仍然沿着墙壁移动(我没有世界重力,只有在它击中桨)。如果角度足够小,垂直壁也会发生这种情况,它会失去X速度。

如何按照预期的方式移动球?如果没有摩擦,是什么原因造成的?

【问题讨论】:

  • 如果你给我们看一些代码对我们来说会容易得多
  • 检查过球是否卡在了墙上?
  • @Mekap 我目前无法访问代码,但基本上,我只是添加了 4 个静态体作为墙壁和球体动态体,并在撞击桨时应用 Impulse。没什么特别的。
  • @EvanKnowles 它只在角度足够小时才会发生,所以我认为不会。
  • 听起来像是一个舍入/类型转换问题。您是否尝试过为所有物理变量使用浮点值?

标签: java libgdx box2d physics


【解决方案1】:

尝试在 libgdx 中更改速度阈值。

void World.setVelocityThreshold(float threshold);
float World.getVelocityThreshold();

http://www.badlogicgames.com/wordpress/?p=2030

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多