Les presentamos un motor para Javascript muy interesante, el cual ayuda en trabajos de física para modular los mismos; aún no hay mucha información definida sobre este nuevo motor y aunque no sepamos nada de física o nos guste deberíamos probarlo por el simple hecho de probar y experimentar con el motor.

Poca de la información que se maneja en la página oficial se las iré contando en este artículo, así como los pasos para instalarlo y utilizarlo.

PhysicsJS

PJS2

¿Pero cuál es el nombre del motor? Bien, este se llama PhysicsJS, aún se encuentra en desarrollo (versión alpha 0.5.1), y la documentación no está del todo terminada. Pero lo que si recomiendan en la home page es el sentirnos totalmente libres de utilizar la herramienta, y tener en consideración que la API está en proceso de cambio, así como una mejor y aumentada documentación.

Características

  • Utiliza como módulo AMD (requiere JS).
  • Modular. Sólo carga lo que necesita.
  • Extensible. Si no te agrada el algoritmo de detección de colisiones, podrás reemplazar por uno propio.
  • No está ligado a un procesador en específico.
  • Mostrable en DOM, Canvas HTML5, o lo que sea.
  • Es una librería escrita en JavaScript, no C compilado en Javascript. (La sintaxis es familiar para los desarrolladores de JavaScript).
  • Extensiones para apoyar puntos, círculos y polígonos convexos.
  • Extensiones de apoyo constante de la gravedad, la gravedad newtoniana , colisiones y limitaciones Verlet.

¿Qué pasa con 3D?

Ya hay un buen número de motores 3D en JS sobre Física, pero para PhysicsJS lo 2D fue la primera prioridad. Sin embargo, debido a la forma en que fue construido debe ser bastante posible que se adapte a lo 3D, meta a largo plazo que el equipo de trabajo tiene considerado.

Instalación

Puede utilizar PhysicsJS como módulo de AMD (RequireJS), un módulo de CommonJS o un navegador normal global.

Como módulo de AMD con RequireJS

Esta es la forma recomendada de utilizar PhysicsJS . Lee sobre RequireJS para aprender a configurarlo. Indicale a RequireJS dónde encontrarrá la fuente PhysicsJS:

require.config({
    baseUrl: './',
    // ...
    packages: [
        {
          name: 'physicsjs',
          location: 'path/to/physicsjs',
          main: 'physicsjs-0.5.1.min'
        }
    ],
    //...
});

Ahora las dependencias que necesita:

require([ 'physicsjs', 'physicsjs/bodies/circle' // will mix into the PhysicsJS library ], function( Physics ){ // do something fun with circles! });

Como un navegador mundial

Basta con incluir la biblioteca en el código HTML:

<script src="scripts/physicsjs/physicsjs-VER.min.js"></script>

Empieza a usarlo:

Physics(function(world){ // code... });

PhysicsJS fue creado para ser modular. Así que cualquier funcionalidad no esencial es independiente y se debe incluir por separado. Por ejemplo, si necesitamos círculos, debemos incluir un script y después incluir PhysicsJS.

<script src="scripts/physicsjs/physicsjs-VER.min.js"></script>
<script src="scripts/physicsjs/bodies/circle.js"></script>

Podía ser algo muy tedioso, por lo que se recomienda el uso de RequireJS (y su optimizador). Sin embargo, si sabes que deseas la mayoría o todos los extras, se puede utilizar la versión “completa” de la secuencia de comandos, que incluye todas las funciones no esenciales.

<script src="scripts/physicsjs/physicsjs-full-VER.min.js"></script>

Como módulo de Node.js (CommonJS)

Esto aún no ha sido probado , pero debería ser perfectamente posible ejecutar PhysicsJS en Node.js, exigiendo el archivo correcto.

var Physics = require('./path/to/physicsjs/physicsjs-full-0.5.1');

Physics(function(world){
  // code...
});

Demos, documentación y descargas

Echa un vistazo a la página de demostración para ver algunos ejemplos de lo que PhysicsJS puede hacer, si necesitas documentación básica también la puedes encontrar, así como un tutorial de como crear una escena de polígonos interactivos. Y finalmente podrás encontrar el repositorio en GitHub donde podremos descargar el motor y emprezar a utilizarlo y experimentar con el.

No olvides escribirnos tus comentarios y seguirnos en las redes sociales.

Cecy Martínez

Cecy Martínez

Jefa de contenido y editora en HTML5Fácil, NinjaCodeTV, Desveloperstv y Co funder de WaveCode.LA

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cerrar