Developpez.com - Rubrique JavaScript

Le Club des Développeurs et IT Pro

Matter.js : un moteur 2D de manipulation et d'interaction de corps rigides

Conçu en HTML5 et JavaScript

Le 2014-03-04 14:40:13, par vermine, Expert éminent sénior
Matter.js : un moteur 2D de manipulation de corps rigides
Conçu en HTML5 et JavaScript


Matter.js est un moteur 2D physique stable et souple de manipulation et interaction de corps rigides pour les navigateurs. Conçu en HTML5 et JavaScript, il s'appuie sur divers algorithmes comme Verlet integration, la détection des grilles et des collisions (phases broad et mid AABB), la détection du sens et de l'orientation (SAT), des simulations physiques, etc.

D'autres outils du genre existent mais son auteur, Liam Brummitt, a écrit un code propre et facile à lire qui le démarque peut-être des autres. Son travail vient à l'origine d'une étude de la programmation des jeux.

En voici un aperçu :

Code javascript :
1
2
3
4
5
6
7
var Bodies = Matter.Bodies; 
var Engine = Matter.Engine; 
var engine = Engine.create(container, options); 
var World = Matter.World; 
  
World.addBody(engine.world, Bodies.rectangle(300, 180, 700, 20, { isStatic: true, angle: Math.PI * 0.06 })); 
World.addBody(enigne.world, Bodies.rectangle(300, 70, 40, 40, { friction: 0.001 }));

Ce moteur vous permet de jouer entre autres sur :

  • la masse ;
  • l'aire ;
  • la densité ;
  • la forme ;
  • l'élasticité ;
  • la résistance ;
  • la gravité ;
  • la mobilité ;
  • etc.


En tout cas, le résultat en vaut la peine. Jugez par vous-même sur la page de démonstrations que vous pouvez paramétrer : démonstrations de Matter.js.

Site officiel.

Source : d'après un article paru sur DailyJS.
  Discussion forum
2 commentaires
  • earhater
    Membre éprouvé
    Après avoir testé, c'est une très bonne librairie très simple d'utilisation, les performances sont très bonnes (ce qui faisait selon moi défaut à box2d.js). A tester
  • rambc
    Membre chevronné
    Bluffant de fluidité... Il manque juste des petits exemples de jeu comme par exemple un Donkey Kong des années 80.