jueves, 12 de abril de 2012

QuickBox2D motor físico utilizado en AS3





Esta semana comencé a utilizar este motor 2D, que permite crear una variedad de efectos de simulación física; voy mostrar cómo utilizar unas pequeñas demos para familiarizarme con esta grandiosa herramienta.

Box2D es una biblioteca física creada por Erin Catto e implementado en AS3 por Matthew Bush y Jhon Nesky, para estos proyectos nuevos estoy utilizando Box2DFlashAS3 que simplifica la instanciación de cuerpos rígidos y de manera fácil personalizar esos gráficos.

Lo primero que necesitamos es descargar las librerías necesarias de sourceforge; tenemos que descargar la versión 2.0.2 que es una versión estable; luego necesitamos el QuickBox2D la cual la descargamos de actionsnippet.com y descargar la versión recomendada QuickBox2D 1.1 una vez descargados todas las librerías que necesitamos nos ponemos a trabajar.

Necesitamos configurar nuestro Flash por eso abrimos flash y creamos un nuevo archivo flash; guardamos ese archivo y configuramos nuestra carpeta de trabajo, extraemos las librerías descargadas en la carpeta de trabajo donde guardamos nuestro nuevo archivo flash, debería quedar asi nuestra carpeta de trabajo.
 


Es el momento de crear nuestros primeros cuerpos rígidos, para eso creamos una nueva layer y le damos el nombre de Actions, luego abrimos el panel de código y vamos a escribir el siguiente código:



import com.actionsnippet.qbox.*;  
  
var sim:QuickBox2D = new QuickBox2D(this);  
  
sim.createStageWalls();  

sim.addBox({x:3, y:3, width:1, height:2});
sim.addBox({x:5, y:6, width:3, height:3});
sim.addBox({x:7, y:9, width:1, height:2});  
sim.addCircle({x:4, y:6, radius:1});

for(var i:uint=0; i<=10; i++)
{
 sim.addBox({x:6, y:8, width:0.5, height:0.5});
 sim.addCircle({x:5, y:7, radius:0.5});
}
  
sim.start();  
sim.mouseDrag() 

Ahora probamos nuestro código y deberemos obtener lo siguiente:

Es interesante que con una pequeña cantidad de código se pueda lograr esto, lo primero que se hace es crear una instancia QuickBox2D y pasarlo a un constructor en línea de tiempo, esto hace que todos los objetos que se llamen a partir de ese momento sean cuerpos rígidos y cualquier referencia a esos se hace por medio de el constructor QuickBox2D la cual en este programa en especifico se los guarda en la variable creada llamada sim (viene de “simulación”...pero en realidad se le puede asignar cualquier nombre).
Para crear las paredes que definen el escenario hacemos uso del método createStageWall();que es necesario para que los objetos que vamos a crear no caigan fuera del escenario, luego se debe de crear los cuerpos rigidos que actuaran en ese escenario; se puede notar que la asignación de propiedades a los objetos trbaja de la misma manera que lo hacen otros motores de interpolación populares que permiten introducir un numero de argumentos que facilita a la lectura sintáctica.
Con el método addBox() lo que hacemos es crear una caja la cual necesita parámetros de posición y tamaño, de igual manera addCircle(); para iniciar la simulación usamos la sentencia start(), y la función que nos permite arrastrar los objetos con el mouse es mouseDrag().
Una parte esencial de comprender este motor físico es el manejo de el sistema de coordenadas al cual no estamos acostumbrados en un entorno flash ya que para las posiciones se maneja pixeles, Box2D utiliza metros en lugar de pixeles y se debe de tener en cuenta que 1 metro equivale a 30 px.
Todavía es solo es una pequeña demo de lo que este gran motor físico puede hacer pronto estaré haciendo más experimentos y probando nuevas cosas para mis desarrollos por lo que me será de gran ayuda al momento de programar efectos interesantes.

Related Posts:

  • Papervision3D Aplicaciones y Modelos 3D en tiempo real Esta semana retomo el proyecto que deje pendiente y que pienso terminar en estos meses;  tengo muchos avances teóricos  pero necesito un prototipo funcional con el cual trabajar e ir ampliando par… Read More
  • Analizando la anatomía de las Aplicaciones Flex Los proyectos en Flash Builder presentan una arquitectura de desarrollo y diseño de proyectos únicos que contiene archivos mxml y AS3. Analizando un  poco el contenido de nuestro primer ejemplo de proyecto Flash Buil… Read More
  • Primera práctica con Flash Buider La primera práctica que se hace siempre al aprender un nuevo lenguaje es el típico “Hola Mundo” y lo que básicamente hare en esta práctica es eso. Lo primero que hago es abrir mi recién instalado Flash Buider 4.5 y lo… Read More
  • Box2D motor físico de código abierto Box2D motor físico de código abierto La física añade realismo a nuestro proyecto de creación de juegos creados con AS3 y ahora estoy probando este motor físico que es de código abierto y es usado por muchos desarrollador… Read More
  • Iniciando mi entrenamiento en Flash Builder Como esta semana la paso revisando mi información y actualizando algunas cosas, lo único con lo que puedo distraerme es escribiendo….ya necesitaba hacer un poco más interesante mi blog. Esta semana estoy trabajando en … Read More