2016-04-14 17 views
1

状況:私は、重力環境下で加速度計によって制御するbox2d本体を持っています。インパルスを使って 'roll'と 'pitch'に比例してlinearVelocityを設定しました。 ボディが何かに触れると、ダメージを受けます。Box2d本体は、静的オブジェクトと接触しているときに「振動する」

問題:ボディが静的オブジェクトと衝突していて、動きの方向がまだその方向を指している場合、インパルス(ボディ振動)によってボディはまだダメージを受けます。

私は衝突後に体を減速させようとしました。時間が経過するにつれて最大インパルス値を下げます(これは機能します)。しかし、私はむしろそれを遅くしたくありません。

どのようにこれを達成することができますか?

おかげ

答えて

1

あなたがFixtureのために適切な値を設定する必要があります - このケースでは、あなたはrestitutionは体がどのように「弾む」であるabountあるrestitution

FixtureDef fd = new FixtureDef(); 
    fd.restitution = 0; 

0に設定する必要があります。あなたが説明してきた状況は、おそらくあなたは、あなたのためにBox2D official reference

+0

感謝ので詳細を読むことができますあまりにも高反発(体は、静的なものに触れるバウンスが、すぐに重力落下し、その後、その後跳ね...)

によって引き起こされます答え、私はちょうどそれをチェックした。残念なことに、すべての反復値は明示的に0に設定されています。私はより複雑なBodyを持っているからかもしれません。それは2つのスプリング(距離ジョイント)と回転ジョイントを含んでいますか?私は家にいるときにスケッチを投稿します – Draz

+0

ここにあります:[link](http://imgur.com/T7KDbl7)灰色の四角形は密度がゼロで、全く衝突しないヘルパーです。私は本体の傾きを作るために角度を操作します。青色の線は、スプリングとして構成された距離ジョイントです – Draz

関連する問題