C++ Box2D - 如果动态物体被单独放置,将不会受到重力影响

7

+1 好问题,我也正想问,结果找到了这个! - David Kroukamp
1个回答

6

在Box2D中,物体在静止后会进入休眠状态。在更改重力等参数后,您需要唤醒所有休眠对象,可能需要调用所有对象上的WakeUp方法。当某些物体与休眠物体发生碰撞时,也会自动唤醒这些物体,这就是为什么重力在某些物体发生碰撞后开始生效的原因。


我该怎么做?迭代?还是有一个好用的命令可以一次性把它们全部唤醒? - user569322
1
是的,您可以遍历所有对象并调用WakeUp。 您还可以使用设置为“noSleep”参数创建世界。 您还可以将对象创建为allowSleep设置为false。 - yiding
1
太好了!顺便说一下,B2D的新版本调用方法为 SetAwake(bool) :3 - user569322
1
啊,其实我自从05~06年它第一次推出以来就没再用过Box2D。 - yiding
没问题,你肯定指引我朝着正确的方向前进了! - user569322

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接