0

我只是想知道是否有一种方法可以更改 box2d(cocos2d)中的身体激活睡眠状态之前的时间量。

我目前使用睡眠状态作为结束游戏的一种方式,所以如果我可以加快达到睡眠状态所需的时间,那将是更可取的。

谢谢

4

1 回答 1

2

物理引擎不会根据时间让对象进入睡眠状态。它只会让处于静止状态(空闲)的身体进入睡眠状态。通常,物理引擎定义规则何时可以安全地让身体进入睡眠状态,通常是身体完全停止移动,没有其他移动的身体接触它,并且在一段时间内同时满足这两个条件。

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

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

于 2012-05-12T09:04:50.353 回答