Welche Box2D-JavaScript-Bibliothek sollte ich verwenden? [closed]

Lesezeit: 5 Minuten

Benutzeravatar eines bezahlten Nerds
ein bezahlter Nerd

Es gibt ein paar verschiedene Ports von Box2D für Javascript. Welches ist das beste?

  • Box2DJS – “Automatisch von Box2DFlashAS3_1.4.3.1 konvertiert”

  • Box2Dflash 2.0 auf JavaScript portiert – “Ein großer fieser Hack, der einfach funktioniert”

  • box2dweb – “eine Portierung von Box2DFlash 2.1a auf JavaScript. Ich habe einen ActionScript 3-zu-JavaScript-Konverter entwickelt, um den Code zu generieren.”

  • HBehrens/box2d.js – “eine JavaScript-Version von Box2D 2.1a” (Hinzugefügt am 21. November 2011)

  • kripken/box2d.js – “eine direkte Portierung der Box2D 2D-Physik-Engine zu JavaScript, mit Emscripten” (Hinzugefügt am 24. September 2013)

Irgendwelche Ideen, welche Version http://chrome.angrybirds.com/ verwendet, falls vorhanden?

  • Es muss nicht einmal ein Box2D-Port sein. Zum Beispiel, Matter.js und p2.js beide scheinen ziemlich solide zu sein.

    – Thomas

    7. September 2016 um 17:40 Uhr

  • @Thomas Ich stimme zu. Aber schauen Sie sich die Zeit an, zu der die Frage gestellt wurde. Damals waren Matter.js und p2.js meiner Meinung nach noch nicht erschienen.

    – neuer Typ

    4. April 2017 um 17:31 Uhr

  • Wahrscheinlich, aber ich denke, diese Frage tauchte bei Google auf … kein Schaden, wenn ich versuchte, SO mit nützlichen Hinweisen für diejenigen auf dem Laufenden zu halten, die nach Ihnen kommen 🙂

    – Thomas

    5. April 2017 um 6:43 Uhr

Benutzeravatar eines bezahlten Nerds
ein bezahlter Nerd

Hinweis an die Leser!

Diese Frage wurde ursprünglich im Jahr 2011 gestellt und beantwortet, aber ich werde mein Bestes tun, um sie auf dem neuesten Stand zu halten!

Hier ist, was ich gefunden habe:

  • kripken/box2d.js ist eine Portierung von Box2D mit Emscripten und funktioniert gut und ist schnell. Ich habe dies persönlich mit großem Erfolg verwendet.
  • planck.js ist die neueste Portierung und wurde von Grund auf in JavaScript geschrieben
  • Box2DJS ist eine Portierung von Box2DFlash 1.4.3.1. box2dweb ist eine Portierung der Version 2.1a.
  • Box2DJS funktioniert “als CommonJS-Modul ohne jegliche Modifikationen” [1]
  • Box2DJS “nicht aktuell und Sie müssen in jedem Projekt eine große Menge an JavaScript-Dateien importieren” [2]
  • box2dweb ist in einer einzigen Datei enthalten [2]
  • box2dweb ist “ein viel neuerer Port und hat viel weniger Probleme” als Box2DJS [3]. Der Wechsel kann jedoch neue Probleme mit sich bringen [4].
  • Box2DJS ist von Prototype abhängig, box2dweb jedoch nicht [5]
  • Seth Ladd hat box2dweb mit Beispielen in seinem Blog beworben [6]
  • Niemand scheint die dritte Alternative zu verwenden.
  • Es gibt auch Physik-Simulatoren nicht basierend auf Box2D. Kasse Matter.js und p2.js

Es gibt auch eine ähnliche Diskussion auf gamedev.stackexchange.com.

Ich würde sagen, dass der Gewinner kripken/box2d.js ist.

  • box2d ist nicht so aktuell wie box2dweb. In der minimierten Datei fehlen viele Kernklassen.

    – Dopatraman

    22. Januar 2013 um 20:55 Uhr

  • Ich persönlich habe box2dJS in einem Projekt verwendet, bei dem ich mein bestehendes iOS-Box2D-Spiel portiert habe. Was ich mit dem Versionsunterschied gefunden habe, ist, dass ein Teil des Codes von iOS in der JS-Version und dem Entwicklungsstopp nicht funktioniert. Danach habe ich eine halbe Woche gebraucht, um den gesamten Code in box2dweb zu ändern, und alles funktioniert genauso gut wie bei meinem iOS-Box2d-Spiel. Der Versionsunterschied ist also sehr wichtig.

    – Makzan

    2. August 2013 um 9:01 Uhr

  • Der Emscripten-Port ist ziemlich cool, aber als ich ihn das letzte Mal benutzte, fand ich ihn fehlerhaft (einschließlich zufälliger Einfrierungen) und aufgrund der Natur von Emscripten sehr schwer zu debuggen.

    – Häschenheld

    12. April 2015 um 19:04 Uhr


  • @aPaidNerd ist das noch aktuell?

    – Ken

    15. September 2015 um 9:21 Uhr

  • Eine neue Box2d-portierte JS-Physik-Engine namens planck wurde kürzlich veröffentlicht, sehen Sie es sich an: github.com/shakiba/planck.js

    – neuer Typ

    4. April 2017 um 17:33 Uhr

Diese Frage und ihre beste Antwort stammen aus dem Jahr 2011. Eine aktuelle neue Option ist box2.js, eine Emscripten-Übersetzung des C++-Codes in Javascript. Ab August 2013 ist es aktueller als die anderen Ports, die ich gefunden habe, und die Demos scheinen zu funktionieren.

  • Danke @Nelson, ich habe es der Frage hinzugefügt

    – ein bezahlter Nerd

    24. September 2013 um 15:30 Uhr

  • Ich habe keine dieser Bibliotheken verwendet, aber box2d.js und “Spaß mit VTables” klingen nicht cool.

    – cubuspl42

    12. Dezember 2013 um 12:09 Uhr

LiquidFun (mit JS-Bindungen)

LiquidFun ist zu dem Zeitpunkt, an dem ich dies poste, die neueste Portierung auf JS. Es verfügt über alle Funktionen von Box2D und Flüssigkeitsphysik-Funktionen. Es wird mit emscripten portiert, daher ist die Leistung anständig.

google/liquidfun

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

  • Ich bin kürzlich darauf gestoßen und es sieht ideal aus, um Wasser zu simulieren, das durch Rohre in Tanks und Ventile usw. fließt. Es wäre eine gute Lösung für ein Projekt, das ich mir ansehe. Gibt es da draußen ein Tutorial, insbesondere wie ich die Bibliothek tatsächlich in mein Javascript bekomme. Dokumentation scheint etwas dürftig

    – Bob Haslett

    3. Dezember 2015 um 17:36 Uhr

Der wahrscheinlich beste Ort, um sich über Box2D-JavaScript-Portierungen auf dem Laufenden zu halten, ist das offizielle Forum: http://box2d.org/forum/viewforum.php?f=22

JSBox2D sieht nach einem guten Anfang aus.

Ich würde auf jeden Fall mal reinschauen Matter.js, die sehr gut gebaut und sehr schnell zu sein scheint. Ich gehe diesen Weg. http://brm.io/matter-js

Box2d-html5 ist auch ein weiterer box2d-Port, einschließlich des von Google LiquidFun) und aktives Update.

Vennsohs Benutzeravatar
Vennsoh

Box2DWeb unterstützt die meisten APIs aus dem ursprünglichen C++ Box2D mit Ausnahme von Kettenformen. :/

Es ist das am weitesten verbreitete Javascript Box2D. Wenn Sie die API-Dokumentation für Box2DWeb benötigen, sehen Sie sich Box2DFlash an. http://www.box2dflash.org/docs/2.1a/reference/

Box2DWeb wird mithilfe eines Compilers automatisch aus Box2DFlash generiert. Die API ist also die gleiche.

Ich bezweifle, dass Box2DWeb in Zukunft noch Updates erhalten wird, da Box2DFlash keine Aktivitäten mehr gezeigt hat. Sie können die Begründung des Autors sehen, warum er sich entschieden hat, keine direkte Box2D –> Box2DWeb-Portierung zu schreiben.

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

1407020cookie-checkWelche Box2D-JavaScript-Bibliothek sollte ich verwenden? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy