不受重力影响的动态物体

C++ Box2D - Dynamic bodies not affected by gravity if left alone

本文关键字:动态 影响      更新时间:2023-10-16

我在SFML2中使用Box2D并意识到;当我改变世界的重力时,那些暂时未被触动的动态物体不会受到重力变化的影响。我准备了一个视频,使这个解释更清楚。

解决方案吗?我需要自己制造重力吗,为什么会这样?

这是视频。请注意,如果物体在短时间内不移动,它们不会受到最近移动的物体的影响。

Box2D中的对象在休息之后进入睡眠状态。在改变了诸如重力之类的参数之后,你将不得不唤醒沉睡的对象,可能是通过调用所有对象的WakeUp。当物体与它碰撞时,物体也会自动被唤醒,这就是为什么重力似乎是在物体与物体碰撞后才开始生效的原因。