私はbox2dwebを使用します。私はゲームを開発しようとしています。ある時点で、「サークル」と「ボックス」の接点を見つける必要があります。私が知っていることは、b2ContactListenerを使って行うことができるということだけです。ポストソルブイベントを使用してb2ContactListenerを実装することにより、連絡先データを受け取ることができます。助けてください!Box2dweb - 衝突の接点
8
A
答えて
16
あなたはb2ContactListenerとにフックすることができ、様々なイベントがある正しい軌道に乗っている:
var b2Listener = Box2D.Dynamics.b2ContactListener;
//Add listeners for contact
var listener = new b2Listener;
listener.BeginContact = function(contact) {
//console.log(contact.GetFixtureA().GetBody().GetUserData());
}
listener.EndContact = function(contact) {
// console.log(contact.GetFixtureA().GetBody().GetUserData());
}
listener.PostSolve = function(contact, impulse) {
if (contact.GetFixtureA().GetBody().GetUserData() == 'ball' || contact.GetFixtureB().GetBody().GetUserData() == 'ball') {
var impulse = impulse.normalImpulses[0];
if (impulse < 0.2) return; //threshold ignore small impacts
world.ball.impulse = impulse > 0.6 ? 0.5 : impulse;
console.log(world.ball.impulse);
}
}
listener.PreSolve = function(contact, oldManifold) {
// PreSolve
}
this.world.SetContactListener(listener);
だけpostSolveコードを削除し、適切なイベントにフックを行うために必要なものに依存するが。
セス・ラッドには、彼のブログで衝突/反応についての素晴らしい記事がいくつかあります。これが私がこれらのビットを拾い集めて、完全な信用が彼に渡るところです。
こちらがお役に立てば幸いです。これは役立つかもしれない
おかげで、 ゲイリー
関連する問題
- 1. 衝突後にBox2dWebのボディを削除するには
- 2. 衝突2点のノーマル
- 3. Swift SpriteKit 3ノードの衝突/接点ビットマスクを設定する
- 4. 同時衝突によるBox2D衝突フィルタリング
- 5. 衝突接触力の取得
- 6. 衝突()
- 7. 衝突++
- 8. クラスの衝突
- 9. ジェネリックコレクションの衝突
- 10. スプリングクラウドデータフローコンポーネントの衝突
- 11. カラーボールの衝突
- 12. オブジェクトの衝突
- 13. スプライトの衝突
- 14. Pythonの衝突
- 15. ファーサーの衝突
- 16. リアクションリーフレットの衝突
- 17. ActionScriptは衝突
- 18. オペランドタイプ衝突エラーストアドプロシージャ
- 19. サークル衝突式
- 20. ActionsScript 3衝突
- 21. BOX2D衝突グループ
- 22. 乱数衝突
- 23. cocos2dチェック衝突
- 24. CFBundleIdentifier衝突エラー
- 25. pygameでのカメラの衝突と衝突の問題
- 26. CSSの衝突Liferay
- 27. サーブレットマッピング/ Strutsの衝突
- 28. zend:パラメータの衝突
- 29. WCFタイプの衝突
- 30. jQueryのイベント衝突
:http://www.iforce2d.net/b2dtut/collision-anatomy – iforce2d