【问题标题】:How would you keep a top view of a train on the tracks with the Box2D physics engine?你将如何使用 Box2D 物理引擎保持火车在轨道上的俯视图?
【发布时间】:2009-03-05 19:57:31
【问题描述】:

我认为使用像 Box2D 这样的物理库来模拟火车的顶视图沿着轨道、穿越开关等会很有趣。我需要哪些关节和马达来完成这项工作?

我很好奇如何实现使汽车遵循样条轨道所需的力,以便它可以撞到其他火车车厢、行人、DeLoreans 等。只需说“汽车现在位于样条线 (t)”即可每个时间步都会在物理引擎中产生过大的力。如果我理解正确,您必须用一种力将汽车固定在轨道上,用另一种力将其角度限制为与轨道平行(或用两种力将汽车的前部和后部固定在轨道上),然后创建另一个推动火车前进的力量。我正在寻找有关如何完成这些事情的一些细节。

【问题讨论】:

  • 我也对此感兴趣 - 可惜我们无法找到更多答案...

标签: simulation physics box2d


【解决方案1】:

我相信如果没有“真正的”物理原理,例如 Luxor 或 Tumble Bugs 等游戏的球运动,它会更容易。含义:让火车遵循由轨道定义的样条线。

使用物理让火车跟随轨道可能有点过头了,可能会导致各种不良副作用,包括抖动、火车脱轨、火车卡在路口等。

不过,您仍然可以使用物理关节将各个货车连接在一起。只需确保只有机车获得加速力,火车的其余部分只是跟随或被推动但保持在花键上。

【讨论】:

    【解决方案2】:

    您为什么担心让它“走上正轨”?它要去哪里?重力应该让它保持向下,物体相交应该保持它向上,所以你需要担心的唯一方向是向前和向后。这就是马达进来的地方,你就完成了。剩下的就是装饰品了。

    针对问题的编辑:

    侧轨。与宽度相比,让火车足够长/足够坚固,以便您可以通过交叉口(使它们更接近直角,以尽量减少交叉口问题。

    【讨论】:

    • 我猜他的曲目也有曲线,所以“前进”不会削减它。 :)
    • @Paul-Jan 在 2d 中,曲线称为山。重力应该做到这一点。如果他说的是关闭重力并进行俯视图,那么答案就是侧轨。
    • 我在想火车的俯视图。
    • @MarkusQ 你建议把它建模成气动管?
    【解决方案3】:

    自上而下的视图(即从天空看火车)实际上并不需要 2d 物理引擎 - 如果我理解正确的话。事实上,它似乎对解决问题没有真正的帮助(如果你想要一个火车模拟),但也许你只是想试试看。 :)

    但是,如何在火车和汽车上安装滑动接头,在机车上安装电机。滑块关节可能需要一些特殊的实现;您可能想沿着样条线而不是直线段运行火车,对吧?

    某种球形接头将汽车连接在一起。

    【讨论】:

      【解决方案4】:

      实施并不那么困难,我能够在几个小时内完成基本工作的原型。它需要大量工作才能使其顺利运行,但它本质上只是“侧轨”。

      显然,在 Box2D 中,自上而下首先必须关闭重力。二是造火车。像对待汽车车轮一样对待火车车轮,它会突然变得简单得多。对于曲目,您有几个选择:

      • 创建您自己的游戏对象(不在 box2D 世界中),它是一条简单的线,然后火车将“跟随”(您可以使用火车车轮上的电机来“引导”朝向该线)。然后用一些漂亮的宽“铁路”图形覆盖这条线,你就有了一个很好的伪造系统。如果车轮偏离线路太远,请告诉车轮关闭,然后你就出轨了。

      • 创建实际的物理轨道 - 火车“车轮”会碰到的外部轨道(如侧轨)。在这种情况下,它们必须具有平缓的曲线,考虑到您拥有的资源有限,这可能非常困难(在 Box2D 中模拟一个不错的慢速曲线在处理器上很粗糙)

      那就放开你的火车吧!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多