你如何使用Box2D物理引擎保持轨道上的火车顶视图?

时间:2009-03-05 19:57:31

标签: simulation physics box2d

我认为使用像Box2D这样的物理库来建模跟踪轨道的顶视图,遍历开关等等将会很有趣。我需要哪些接头和电机才能使其工作?

我很好奇如何实现使汽车跟随花键轨道所需的力量,以便它可以撞到其他火车车厢,行人,DeLoreans等等。只是说“汽车现在处于花键(t)”每一步都会在物理引擎中产生过多的力量。如果我理解正确的话,你必须用一个力将汽车固定在轨道上,约束它的角度,使其与另一个轨道平行,或者用两个力将汽车的前部和后部粘在轨道上,并创建另一股推动火车前进的力量。我正在寻找有关如何完成这些事情的一些细节。

4 个答案:

答案 0 :(得分:3)

我相信没有“真实”物理会更容易,比如Luxor或Tumble Bugs等游戏的球运动。含义:让火车沿着由轨道定义的样条曲线。

使用phyiscs可能会让火车跟踪赛道并且可能导致各种不良的副作用,包括不稳定的运动,火车脱轨,火车卡在路口等等。

然而,您仍然可以使用物理关节将各辆货车连接在一起。只要确保只有机车获得加速力,火车的其余部分才会跟随或被推动,但仍停留在花键上。

答案 1 :(得分:1)

你为什么担心把它“放在轨道上”?它会去哪里?重力应该保持下降,物体交叉应该保持它,所以你需要担心的唯一方向是向前和向后。那是电机进来的地方,你已经完成了。其余的都是装饰品。

回应编辑问题:

护栏。并且使火车足够长/刚性足够宽,以便您可以导航过境点(使它们更接近直角以最小化交叉问题。

答案 2 :(得分:1)

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

然而,如何在火车和汽车上放置滑块接头等东西,在机车上放置电机。滑块关节可能需要一些特殊的实现;你可能想沿着样条曲线运行火车而不是一段直线,对吗?

某种类型的球形接头会将汽车连接在一起。

答案 3 :(得分:1)

实施并非如此强大,我能够在几个小时内完成基本工作的原型。它需要大量工作才能使其顺利运行,但它基本上只是“侧栏”。

自上而下你显然首先必须在Box2D中关闭引力。第二,建一列火车。像车轮一样对待火车车轮,它会突然变得更加简单。对于曲目,您有几个选择:

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

  • 创建实际的物理轨道 - 列车“车轮”撞到的外侧轨道(如侧栏)。在这种情况下,它们必须具有平缓的曲线,鉴于资源有限(在Box2D中模拟一个漂亮的慢速曲线在处理器上很粗糙),这可能非常困难。

然后让你的火车开始!