【问题标题】:box2d - more stable stackbox2d - 更稳定的堆栈
【发布时间】:2014-08-22 20:44:13
【问题描述】:

我正在使用 box2d 和 libgdx 开发一款塔式游戏。 当我在彼此之上添加盒子时,在 10 或 15 之后会有某种不稳定,并且堆栈会下降。 使堆栈更稳定的最佳方法是什么?

我尝试过使用大角度阻尼,或者给盒子更大的密度,但没有成功。 每个块都具有相同的物理特性。

有什么建议吗?

【问题讨论】:

  • 尝试使用更大的盒子,这不需要在视觉上产生任何影响。您应该已经使用米作为您的 Box2D 坐标并将其转换为更与屏幕相关的内容。
  • 我觉得你期望太高了。假设这些盒子的大小都相同,那么获得如此高的堆叠以保持稳定的唯一方法是,如果它们完全垂直放置在彼此的顶部,并且角度完全为零。我刚才用 1m x 1m 的盒子尝试了这个,它设法稳定并休眠到大约 17 个盒子。我认为这几乎就是现实世界中的样子吧?
  • @iforce2d 是的,但我只是想让它们在游戏中更稳定.. 仅此而已.. 1 米 = 100 像素在我的游戏中
  • 我想你可以尝试使用一些线性阻尼,可能有助于减少最终发展为更大运动的微小运动。

标签: java libgdx box2d


【解决方案1】:

我相信不稳定的堆栈行为是 Erin 用于具有两个接触点的形状的位置分辨率的算法所固有的(至少按照 2.3.2)。更多解释请参见我在https://stackoverflow.com/a/41626448/7410358 的回复(包括我如何修改算法以使其更稳定的描述)。

我尝试在垂直堆栈测试(Box2D 测试平台)中增加块的大小,看看是否可以让它看起来更稳定。翻倒似乎确实需要更长的时间。所以显然这是一种让它至少更稳定一点的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2021-06-27
    • 2023-03-27
    • 2014-07-21
    相关资源
    最近更新 更多