web-dev-qa-db-fra.com

Quelle bibliothèque JavaScript Box2D dois-je utiliser?

Il existe quelques ports différents de Box2D pour JavaScript. Lequel est le meilleur?

  • Box2DJS - "converti de Box2DFlashAS3_1.4.3.1 de manière automatique"

  • Box2Dflash 2.0 porté sur JavaScript - "un gros hack méchant qui arrive juste à fonctionner"

  • box2dweb - "un port de Box2DFlash 2.1a vers JavaScript. J'ai développé un convertisseur ActionScript 3 - vers JavaScript pour générer le code"

  • HBehrens/box2d.js - "une version JavaScript de Box2D 2.1a" (Ajouté le 21 novembre 2011)

  • kripken/box2d.js - "un port direct du moteur physique Box2D 2D vers JavaScript, en utilisant Emscripten" (Ajouté Sep 24, 2013)

Des idées quelle version http://chrome.angrybirds.com/ utilise, le cas échéant?

85
a paid nerd

Note aux lecteurs !

Cette question a été initialement posée et répondue en 2011, mais je ferai de mon mieux pour la garder à jour!

Voici ce que j'ai trouvé:

  • kripken/box2d.js est un portage de Box2D utilisant Emscripten et fonctionne bien et est rapide. Je l'ai utilisé personnellement avec beaucoup de succès.
  • planck.js est le dernier port et est écrit à partir de zéro en JavaScript
  • Box2DJS est un port de Box2DFlash 1.4.3.1. box2dweb est un port de la version 2.1a.
  • Box2DJS fonctionne "comme un module CommonJS sans aucune modification" [1]
  • Box2DJS "pas à jour et vous devez importer une grande quantité de fichiers JavaScript dans chaque projet" [2]
  • box2dweb est contenu dans un seul fichier [2]
  • box2dweb est "un port beaucoup plus récent et a beaucoup moins de problèmes" que Box2DJS [3] . Cependant, le changement pourrait introduire de nouveaux problèmes [4] .
  • Box2DJS dépend du prototype mais box2dweb non [5]
  • Seth Ladd a promu box2dweb avec des exemples sur son blog [6]
  • Personne ne semble utiliser la troisième alternative.
  • Il existe également des simulateurs de physique pas basés sur Box2D. Découvrez Matter.js et p2.js

Il y a aussi ne discussion similaire sur gamedev.stackexchange.com .

Je dirais que le gagnant est kripken/box2d.js.

78
a paid nerd

Cette question et sa meilleure réponse datent de 2011. Une nouvelle option récente est box2.js , une traduction Emscripten du code C++ en Javascript. En août 2013, il est plus à jour que les autres ports que j'ai trouvés, et les démos semblent fonctionner.

12
Nelson

LiquidFun (avec liaisons JS)

LiquidFun est, au moment où je poste ceci, le port le plus récent pour JS. Il possède toutes les fonctionnalités de Box2D et des fonctionnalités de physique des liquides. Il est porté en utilisant emscripten, donc les performances sont décentes.

google/liquidfun

google/liquidfun/tree/master/liquidfun/Box2D/lfjs

7
DylanVann

Le meilleur endroit pour se tenir à jour avec les ports JavaScript de Box2D est probablement le forum officiel: http://box2d.org/forum/viewforum.php?f=22

JSBox2D ressemble à un bon début.

Je voudrais certainement jeter un œil à Matter.js , qui semble très bien construit et très rapide. Je vais dans cette voie. http://brm.io/matter-js

6
zoosrc

Box2d-html5 est également un autre port box2d incluant Google LiquidFun ) et actif mise à jour.

3
cuixiping

Box2DWeb prend en charge la plupart des API du C++ Box2D d'origine, à l'exception des formes de chaîne. : /

Il s'agit du Javascript Box2D le plus utilisé. Si vous avez besoin de la documentation de l'API pour Box2DWeb, consultez Box2DFlash. http://www.box2dflash.org/docs/2.1a/reference/

Box2DWeb est généré automatiquement à partir de Box2DFlash à l'aide d'un compilateur. L'API est donc la même.

Je doute que Box2DWeb obtienne plus de mise à jour à l'avenir car Box2DFlash n'a plus montré d'activité. Vous pouvez voir le raisonnement de l'auteur sur les raisons pour lesquelles il a décidé de ne pas écrire un port Box2D -> Box2DWeb direct.

https://code.google.com/p/box2dweb/wiki/Roadmap

0
Vennsoh