2012-05-11 88 views
0

我只是想知道是否有方法来改变时间量,直到box2d(cocos2d)中的物体的睡眠状态被激活。Box2D睡眠时间

我目前使用睡眠状态作为结束游戏的一种方式,所以如果我可以加快实现睡眠状态所需的时间,则更好。

感谢

回答

2

物理引擎并没有把对象基于时间睡觉。它只让身体进入睡眠状态(空闲状态)。通常情况下,物理引擎定义规则是什么时候放置身体进入睡眠状态是安全的,通常是身体完全停止移动,当没有其他移动物体接触它时,以及两个条件都满足一段时间时。

在Box2D中,除非修改Box2D源代码(不推荐),否则不能修改此行为。在Chipmunk中,您至少可以设定身体在睡眠之前必须闲置多长时间的阈值。改变这个值有时会导致缓慢移动的物体会突然掉入睡眠状态。

要实现您想要的行为,您应该定义自己的一组规则。迭代所有可能在游戏结束时缓慢移动的物体。获取角度旋转和速度的值,并检查它们是否低于某个对您游戏感觉良好的阈值。然后结束游戏,或者也可以手动将对象与body-> SetAwake(false)一起睡眠。