10. Tiro parabólico - nelsonmoreno/Box2d GitHub Wiki

Al igual que el movimiento horizontal el tiro parabólico corresponde a un m.r.u. (movimiento rectilíneo uniforme) respecto al eje horizontal y a un m.r.u.a. (movimiento rectilíneo uniformemente acelerado) respecto al eje vertical. Dicho movimiento consiste en lanzar un cuerpo con una determinada velocidad inicial respecto a los dos ejes (vertical y horizontal) y con un ángulo α respecto a la horizontal mayor que cero. La siguiente figura representa tal situación:

   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 ball object
    bodyDef.type = b2Body.b2_dynamicBody;
    fixDef.shape = new b2CircleShape(
            0.3 //radius
    );
    bodyDef.position.x = 2;
    bodyDef.position.y = (canvas.height / SCALE) - 1.5;

    ballBody = world.CreateBody(bodyDef);
    ballBody.CreateFixture(fixDef);

    //apply impulse
    ballBody.ApplyImpulse(new b2Vec2(Math.cos(84 * (Math.PI / 180)) * 23,
                    Math.sin(84 * (Math.PI / 180)) * 23),
            ballBody.GetWorldCenter());

Este fragmento de código es muy similar al que empleamos en el lanzamiento horizontal (ver sección anterior), a diferencia de este ya no utilizamos una rampa pues la bala es lanzada desde el piso y ademas cambiamos los parámetros del impulso que ahora tienen un ángulo y una magnitud mayor.

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

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

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