Box2D C++版时间步未正常迭代 动态物体Y轴坐标无变化问题求助
问题排查结果
- 核心错误:漏写了动态物体的fixture挂载代码
你在定义完fixtureDef的所有属性后,没有将其绑定到你创建的动态物体body上。Box2D中动态物体的质量、碰撞形状都由挂载的fixture决定,没有fixture的动态物体质量为0,重力无法对其产生作用,因此运行时位置不会发生任何变化。 - 修复方案:在
fixtureDef参数定义完成后、timeStep定义前,添加一行挂载代码:
body->CreateFixture(&fixtureDef);
- 其他可选修正:你代码中
printf的换行符写为了硬换行,建议改为标准转义符\n,避免不同编译器下输出异常。
修复后重新编译运行,就能看到动态物体的y坐标随时间逐步下降的正常效果。
内容的提问来源于stack exchange,提问作者user3676606
相关产品推荐
相关产品推荐

