1

最近、box2d (libgdx を使用した Java) を調べていて、独自のカスタム バウンス効果を作成しようとしています (Restitution最初のバウンス後に を増やします)。

テストとしてこれを行うために、オブジェクトの位置を確認し、最初のバウンスを待ちました。

しかし今、私は実際にこれを実装したいと思っていて、問題に遭遇しました: box2d で 2 つの特定のオブジェクトの衝突を検出するにはどうすればよいですか?

このチュートリアルを見つけました: box2d 衝突検出- しかし、私はそのコードを使用することに非常に消極的です。2 つのオブジェクト間の衝突を検出するための、よりシンプルでクリーンな方法が必要です (ユーザー データを設定したり、巨大な条件ですべての衝突をチェックしたりする必要はありませんif()...)。

誰でも私を助けることができますか?(私は希望に満ちているだけではなく、実際にはもっと良い方法があると仮定します)

4

2 に答える 2

2

衝突を処理するクラスをサブクラス化b2ContactListenerし、衝突コールバックを再実装します。それからちょうど:

MyContactListener *listener = new MyContactListener();
myB2World->SetContactListener(listener);
于 2011-09-16T17:03:31.593 に答える
0

また、いくつかの解決策にはいつものようにショートカットがありませんが、適切な解決策を見つけることができ、衝突を検出する方法がおそらく 100 通りもあることに注意してください。これは、たとえば box2d 衝突検出プログラムのソリューションに似ています。

http://blog.allanbishop.com/box2d-2-1a-tutorial-%E2%80%93-part-4-collision-detection/

于 2012-11-13T08:28:41.147 に答える