我只是想知道是否有办法改变在box2d(cocos2d)中为身体激活睡眠状态之前的时间。
我目前使用睡眠状态作为结束游戏的一种方式,所以如果我能加快达到睡眠状态所需的时间,那就更好了。
由于
答案 0 :(得分:2)
物理引擎不会根据时间将对象置于睡眠状态。它只会使身体处于休眠状态(闲置)。通常情况下,物理引擎定义规则,当身体进入睡眠状态时是安全的,通常当身体完全停止移动时,当没有其他移动物体接触它时,以及当两个条件都是遇到了一段时间。
在Box2D中,除非修改Box2D源代码(不推荐),否则无法修改此行为。在花栗鼠中,你至少可以设置一个身体在进入睡眠状态之前必须闲置多长时间的阈值。更改此值有时会导致缓慢移动的物体突然陷入睡眠状态。
要实现所需的行为,您应该定义自己的一组规则。迭代在游戏结束时可能会缓慢移动的所有身体。获取角度旋转和速度的值,并检查它们是否低于某个对您的游戏有益的阈值。然后结束游戏,或者你也可以用body-> SetAwake(false)手动将对象置于睡眠状态。