首页 > 解决方案 > 在 Box2D 中将对象限制为路径

问题描述

是否可以将 Box2D 中的对象限制为路径?

具体来说,我想在过山车之类的地方移动汽车,并使用 Box2D 进行物理和碰撞检测。

这可行吗?

标签: c++game-enginegame-physicsbox2dphysics-engine

解决方案


可以将对象限制为 Box2D 中的路径,是的。

以下是实现此目的的一些方法,其中第二种方法更接近您的具体要求:

  • 使用关节。棱柱接头(使用b2PrismaticJointDef)将提供一条直线路径。示例用法可以在 Box2D 测试台代码中找到,例如slider_crank_1.cppslider_crank_2.cpp。同时,距离关节 ( b2DistanceJointDef) 可用于将对象保持在圆形路径上。类似地,其他关节将根据其用途和配置将对象限制为路径。
  • 使用其他对象充当路径的墙壁。这方面的示例可以在 Box2Dcharacter_collision.cpp测试台代码中找到。

推荐阅读