2012-05-11 10 views
0

box2d(cocos2d)の本体に対してスリープ状態がアクティブになるまでの時間を変更する方法があるかどうかは不思議でした。Box2Dスリープ時間

私は現在、ゲームを終了する方法としてスリープ状態を使用しているので、スリープ状態を達成するのにかかる時間を短縮することができればそれが望ましいです。

おかげ

答えて

2

物理エンジンは、時間に基づいてスリープ状態にオブジェクトを入れていません。それは、休息している(休息している)身体を眠らすだけです。一般に、物理エンジンは、身体を寝かせることが安全であるとき、身体が全く動かなくなったとき、それに触れる他の動体がないとき、そして両方の条件が一定の期間満たされたときのルールを定義する。

Box2Dでは、Box2Dのソースコードを変更しない限り、この動作を変更することはできません(推奨しません)。 Chipmunkでは、少なくともスリープ状態になる前に本体がアイドル状態でなければならない時間のしきい値を設定できます。この値を変更すると、ゆっくり動くオブジェクトが突然スリープ状態になるという効果が生じることがあります。

必要な動作を実装するには、独自のルールセットを定義する必要があります。ゲームの終わりにゆっくりと動く可能性があるすべての体を反復する。角回転と速度の値を取得し、それらがあなたのゲームに良いと感じる特定の閾値以下になったかどうかを確認します。ゲームを終了するか、body-> SetAwake(false)を使って手動でオブジェクトをスリープ状態にすることもできます。

関連する問題