CONTACT POINTS

25
Jun
2012

RETRIEVING CONTACT POINTS

This will show how to retrieve contact points when the two bodies collide. It must be noted that when two flat bodies collide at zero angle, there will be two contact points.

1) We are going to make use of "userData" here.
var bodyDef = new b2BodyDef;
bodyDef.type = b2Body.b2_dynamicBody;
bodyDef.position.Set(9,7);
bodyDef.userData = 'Box';
...
...
...
Add userData to each body you create. This will act as a POINTER to the body.

2) Set up Contact Listener. Here we will make use of "BeginContact" event available in Contact Listener. This is called when two fixtures begin to overlap. This is called for sensors and non-sensors. This event can only occur inside the time step.
var w_manifold = new Box2D.Collision.b2WorldManifold();
var points = new b2Vec2; // Creating a vector to store points
var num;
var b1="",b2=""; // b1 & b2 store userdata for body1 and body2 colliding
var listener = new Box2D.Dynamics.b2ContactListener; // Setting up listener
listener.BeginContact = function(contact) {
	 num = contact.GetManifold().m_pointCount; // Gets the number of point of contact between two bodies.
	 contact.GetWorldManifold(w_manifold);
	 points = w_manifold.m_points; // stores all the points
	 for(i=0; i < num; i++)	{
		 b1=contact.GetFixtureA().GetBody().GetUserData(); //Gets userdata for body 1
		 b2=contact.GetFixtureB().GetBody().GetUserData(); //Gets userdata for body 2
		 $('#dd').prepend(b1+" with "+b2+' x: '+points[i].x+' y: '+points[i].y+'
'); } }
3) Add the following line in update()
world.SetContactListener(listener);

For better understanding look at the following example and then its source code:

By administrator at 12:19:16 AM 6 Comment(s)

Comments

Hi,

We just wanted to let you know that domain CODINGOWLS.COM is being released back to the market.

Since you own CODINGOWL.COM, we believe that you might have interest in securing CODINGOWLS.COM as well.

If you are interested, please go to: http://worldnamedomains.net/domains/codingowls.com/1109347 to get more information and confirm your interest.

All the additional information is available on our web site, but feel free to reply back to this email and we will be more than happy to help you.

Kind regards,

Jim Horvath

By Jim Horvath on 12 Jun, 2016 at 11:25:07 AM
ditablesworkalls.com buy flagyl er
By bydopyti.ojemoqykym@yandex.com on 3 Feb, 2018 at 03:56:18 PM
Каждому понятно, что одежда всегда подчеркивала индивидуальность человека. Каждый человек уникален. Подчеркнуть свою индивидуальность и купить одежду с готовым принтом (рисунком) или создать прикольный дизайн футболки можно в онлайн магазине http://odejda.shopicheck.net/
By odejdash@i.ua on 8 Feb, 2018 at 04:10:55 AM
wh0cd2808663 [url=http://cymbaltacost.store/]cost cymbalta[/url]
By mikeatupstate@myumail.bid on 17 Feb, 2018 at 08:26:01 PM
Как по мне, более популярен сегодня как у рекламодателей, так и у вебмастеров видеореклама. Видеореклама имеет более сильный эффект чем скажем контекстная или тизерная. Кроме того, доход становится все выше, так как реклама стала с автозапуском и теперь не нужен клик посетителя для ее запуска. Противники этого способа заработка считают, что видеореклама – это агрессивный вид рекламы и отпугивает посетителей сайта. Но это не совсем так. Есть разные сервисы, есть такие в которых звук в плеере включается только после наведения на плеер курсора, то есть проявление заинтересованности. Хочу предложить вам на выбор несколько вариантов. Как с возможностями плеера, так и ставками за 1000 просмотров. Более оплачиваемы ру-просмотры. Ставки колеблются от 10 до 85р. за 1000 просмотров. Вот собственно эти сервисы: https://goo.gl/7D9RS8 https://goo.gl/Y12PJH https://goo.gl/CGkJpv Подробнее http://interesu.tk/index.php/home/2012-04-23-08-14-38/5-2012-04-24-13-34-29/907-2017-12-13-09-47-36
By ivankuvaldin1205@gmail.com on 18 Feb, 2018 at 01:52:17 PM
Earn on binary options [url=http://bin-partner.blogspot.com]bitcoin mining[/url]
By gavrilenkova_alya@mail.ru on 18 Feb, 2018 at 03:02:30 PM

Add a Comment

Please enter the email address.Invalid format. (Won't be Displayed)
Notify me of followup comments
Enter the displayed Code: captcha