我认为使用像 Box2D 这样的物理库来模拟火车沿着轨道、穿过道岔等的俯视图会很有趣。我需要什么关节和电机才能完成这项工作?

我很好奇如何施加所需的力,使汽车沿着样条轨道行驶,这样它就可以撞到其他火车车厢、行人、德洛林人等。仅仅对每个时间步说“汽车现在处于 spline(t)”就会在物理引擎中产生过大的力。如果我理解正确的话,你必须用一种力将汽车粘到轨道上,用另一种力将其角度限制为与轨道平行(或者用两种力将汽车的前部和后部粘到轨道上),然后创建推动火车前进的另一股力量。我正在寻找有关如何完成这些事情的一些细节。

有帮助吗?

解决方案

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

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

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

其他提示

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

回应编辑问题:

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

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

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

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

实现并不那么困难,我能够在几个小时内制作出完成基本工作的原型。要让它顺利运行需要做很多工作,但它本质上只是“护栏”。

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

  • 创建您自己的游戏对象(不是在 box2D 世界中),这是一条简单的线路,然后火车将“遵循”(您可以使用火车轮上的电机“转向”该线路)。然后,只需用一些漂亮的宽“轨道”图形覆盖该线,您就拥有了一个漂亮的伪造系统。如果车轮偏离线路太远,就告诉车轮关闭,然后就出轨了。

  • 创建实际的物理轨道 - 火车“轮子”将撞到的外部轨道(如侧轨)。在这种情况下,它们必须具有柔和的曲线,考虑到您拥有的资源有限,这可能会非常困难(在 Box2D 中模拟一条漂亮的缓慢曲线在 Box2D 中对处理器来说很困难)

然后就让你的火车开走吧!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top