0

box2d(cocos2d)で本体のスリープ状態になるまでの時間を変更する方法があればいいなと思っていました。

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

ありがとう

4

1 に答える 1

2

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

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

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

于 2012-05-12T09:04:50.353 に答える