7. Caída libre - nelsonmoreno/Box2d GitHub Wiki

En la caída libre un cuerpo cae desde una altura H de forma vertical, sin considerar el rozamiento con el aire. Es un tipo de movimiento rectilíneo uniformemente acelerado (m.r.u.a.) cuya aceleración coincide con el valor de la gravedad. En nuestra simulación, la aceleración de la gravedad es constante y dirigida hacia abajo (ya hemos dicho que en Box2d podemos redefinir el sentido de la gravedad), en este caso hemos definido previamente que su valor es de 10m/s2.

   var bodyDef = new b2BodyDef;
 
   //create ground
   bodyDef.type = b2Body.b2_staticBody;
   
   // positions the center of the object (not upper left!)
   bodyDef.position.x = canvas.width / 2 / SCALE;
   bodyDef.position.y = (canvas.height / SCALE) - 1;
   
   fixDef.shape = new b2PolygonShape;
   
   // half width, half height. eg actual height here is 1 unit
   fixDef.shape.SetAsBox((canvas.width / SCALE) / 2, 0.5 / 2);
   world.CreateBody(bodyDef).CreateFixture(fixDef);

   // create dynamic polygon object
   bodyDef.type = b2Body.b2_dynamicBody;
   fixDef.shape = new b2PolygonShape;
   fixDef.shape.SetAsBox(
         0.4//half width
      ,  0.4 //half height
   );
   bodyDef.position.x =  canvas.width / 2/ SCALE;
   bodyDef.position.y = 0.5;
   var boxBody = world.CreateBody(bodyDef);
   boxBody.CreateFixture(fixDef);

En las siguientes dos URL puedes encontrar la demostración y el código fuente completo:

Demostración: http://box2d-1302.appspot.com/static/caidalibre Caida libre

Código fuente: https://github.com/nelsonmoreno/box2d/blob/master/web/static/caidalibre/index.html