Używam box2dweb. Próbuję stworzyć grę. W pewnym momencie muszę znaleźć punkt kontaktowy między "okręgiem" a "pudełkiem". Wiem tylko, że można to zrobić za pomocą b2ContactListener. Możemy uzyskać dane kontaktowe poprzez wdrożenie b2ContactListener przy użyciu Post-Solve Event. Proszę pomóż!Box2dweb - Punkt kontaktowy kolizji
8
A
Odpowiedz
16
Jesteś na dobrej drodze są różne imprezy można podłączyć język z 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);
prostu usunąć kod postSolve iw zależności od tego, co trzeba zrobić, hak do odpowiednich zdarzeń.
Seth ladd ma kilka świetnych artykułów na swoim blogu na temat kolizji/reagowania na nie. To tutaj podniosłem te bity, więc kredyt trafia do niego.
Mam nadzieję, że to pomoże.
Dzięki Gary
Powiązane problemy
- 1. Jak usunąć zwłokę z Box2dWeb po kolizji
- 2. JBox2D - Znajdź współrzędne kolizji
- 3. Krzywa Beziera Krzywa: Maksymalne unikanie kolizji i kolizji?
- 4. Formularz kontaktowy w Rails 3
- 5. Formularz kontaktowy w SiteFinity C#
- 6. Jak korzystać z kolizji w kolizji z metodami kolizji grup w Pygame?
- 7. Punkty kolizji w GJK
- 8. Przewidywana liczba kolizji hash
- 9. Przykłady kolizji hashem?
- 10. Błąd: Naming kolizji wykrywane
- 11. Przewidywanie kolizji kołem
- 12. Formularz kontaktowy 7 automatycznego dodania tagów p
- 13. Formularz kontaktowy w ruby, sinatrze i haml
- 14. (Wordpress) Formularz kontaktowy 7 Przerwij filtr before_send_mail
- 15. Wykrywanie kolizji JavaScriptu na płótnie
- 16. Wykrywanie kolizji w sprite kit
- 17. Jak mogę wykonać wykrywanie kolizji na obróconych prostokątach?
- 18. Wykrywanie kolizji Sprite bez odbijania w SpriteKit
- 19. Kolizja i wielokąt kolizji z libgdxem
- 20. Wykrywanie kolizji trójkątów do trójkątów w 3D
- 21. Najlepszy algorytm skutecznego wykrywania kolizji między obiektami
- 22. Wykrywanie kolizji JavaScript/Jquery dla wyskakujących okienek
- 23. jQuery UI i Bootstrap temat kolizji
- 24. Gra w płytki Java - Wykrywanie kolizji
- 25. Jak napisać elegancki mechanizm do obsługi kolizji?
- 26. Wykrywanie kolizji Java między dwoma obiektami Shape?
- 27. Jak uzyskać konkretny numer kontaktowy za pomocą identyfikatora kontaktu
- 28. Formularz kontaktowy do wiadomości e-mail bez PHP
- 29. Formularz kontaktowy Nie ma odpowiedzi na wysyłanie wiadomości e-mail?
- 30. Jak zmienić punkt obrotu, przekształcić punkt początkowy lub punkt obrotu dla obiektu A-Frame?
To może pomóc: http://www.iforce2d.net/b2dtut/collision-anatomy – iforce2d