lunes, 11 de junio de 2018

QuickBox2D en Flash Develop


QuickBox2D es una librería creada a partir del trabajo de Box2DFlashAS3, el propósito principal de esta mini-librería es simplificar la instanciación de cuerpos rígidos y proveer una manera simple de implementar gráficos que utilicen física en su funcionamiento.

Ya se ha descargado las librerías necesarias que utilizara nuestro proyecto en donde el API Box2D está corriendo de fondo y también necesitamos de las librerías de actionsnippet ya antes he hecho la disposición de archivos en un proyecto con flash profesional pero ahora estoy trabajando con flash develop por lo que la disposición interna de archivos no cambia mucho y básicamente se vería de esta forma:

Solamente tenemos que arrastrar dentro de nuestro nuevo proyecto flash develop dentro de la carpeta src, los dos archivos deben de estar descomprimidos tanto el de Box2D como el de actionsnippet. Ahora debemos de crear nuestros primeros cuerpos rígidos, debemos de abrir nuestro archivo Main.as y escribimos el siguiente código:
//------------------------------------------------------------------------------------------------------------package 
{
 import flash.display.MovieClip;
 import flash.display.Sprite;
 import flash.events.Event;
 
 // lamada a las clases de action snippet
 import com.actionsnippet.qbox.*;
 //--------------------------------------------------
 /**
  * ...
  * @author Alejandro
  */
 public class Main extends MovieClip
 {
  public function Main():void 
  {
   if (stage) init();
   else addEventListener(Event.ADDED_TO_STAGE, init);
  }
  
  private function init(e:Event = null):void 
  {
   removeEventListener(Event.ADDED_TO_STAGE, init);
   //-----------> comienza mi codigo------------------------------
   var sim:QuickBox2D = new QuickBox2D(this);
   
   sim.createStageWalls();// esta es una funcion basica para la creacion de las paredes
   
   sim.addBox( { x:3, y:3, width:1, height:1 } );
   
   sim.addCircle( { x:4 , y:6, radius:1 } );
   
   sim.start();
   
   sim.mouseDrag();
  }
  
 }
 
}
//-------------------------------------------------------------------------------------------------------------------------------------------

Ahora vamos a probar nuestro código, tenemos la instanciación de objetos que hace referencia al constructor QuickBox2D, tenemos que tener en cuenta que al instanciar objetos en el programa principal lo hacemos como extensión al tipo MovieClip o clip de película y la instanciación de la variable sim que se refiere a la simulación.

Esta instancia simulación es la que hace llamado al método de creación de paredes (createWalls), esta dibuja las cajas contenedoras alrededor del escenario que son cuerpos rígidos, los otros métodos son para la adición de objetos como son el circulo y el cuadrado los cuales están definidos en posiciones x e y que tienen un ancho, alto y radio respectivamente. Debemos tomar en cuenta una característica de Box2D sobre las escalas de objetos en escenario ya que maneja la escala de 1 metro equivalente a 30 pixeles.