Какую библиотеку JavaScript Box2D я должен использовать?
Для JavaScript существует несколько разных портов Box2D. Какой из них лучше?
-
Box2DJS - "преобразован из Box2DFlashAS3_1.4.3.1 в автоматическом режиме"
-
Box2Dflash 2.0 портирован на JavaScript - "один большой неприятный хак, который просто срабатывает"
-
box2dweb - "порт Box2DFlash 2.1a для JavaScript. Я разработал ActionScript 3-to-JavaScript для генерации кода"
-
HBehrens/box2d.js - "Версия JavaScript Box2D 2.1a" (добавлено 21 ноября, 2011)
-
kripken/box2d.js - "прямой порт фреймворка Box2D 2D для JavaScript, используя Emscripten" (Добавлено 24 сентября 2013 г.)
Любые идеи, которые версия http://chrome.angrybirds.com/ использует, если таковые имеются?
Ответы
Ответ 1
Примечание для читателей!
Этот вопрос изначально был задан и ответил в 2011 году, но я сделаю все возможное, чтобы он не обновлялся!
Вот что я нашел:
- kripken/box2d.js - это порт Box2D с использованием Emscripten и работает хорошо и быстро. Я использовал это лично с большим успехом.
- planck.js - это самый новый порт и написан с нуля в JavaScript
- Box2DJS - это порт Box2DFlash 1.4.3.1. box2dweb - это порт версии 2.1a.
- Box2DJS работает "как модуль CommonJS без каких-либо изменений" [1]
- Box2DJS "не обновляется, и вам нужно импортировать большое количество файлов JavaScript в каждый проект" [2]
- box2dweb содержится в одном файле [2]
- box2dweb - "гораздо более новый порт и имеет намного меньше проблем", чем Box2DJS [3]. Однако при переключении могут появиться новые проблемы [4].
- Box2DJS зависит от прототипа, но box2dweb не [5]
- Сет Лэдд продвинул box2dweb с примерами в своем блоге [6]
- Никто не использует третью альтернативу.
- Существуют также физические тренажеры, не основанные на Box2D. Проверьте Matter.js и p2.js
Там также аналогичное обсуждение на gamedev.stackexchange.com.
Я бы сказал, что победителем является kripken/box2d.js.
Ответ 2
Этот вопрос и его лучший ответ - с 2011 года. Недавно появившийся новый вариант - box2.js, перевод кода С++ Emscripten на Javascript, По состоянию на август 2013 года он стал более современным, чем другие порты, которые я нашел, и демонстрации, похоже, работают.
Ответ 3
LiquidFun (с привязкой JS)
LiquidFun в то время, когда я отправляю это, самый последний порт для JS. Он обладает всеми функциями Box2D и функциями жидкостной физики. Он портирован с использованием emscripten, поэтому производительность достойная.
google/liquidfun
google/liquidfun/tree/master/liquidfun/Box2D/lfjs
Ответ 4
Наверное, лучшим местом для обновления с портами Box2D JavaScript является официальный форум: http://box2d.org/forum/viewforum.php?f=22
JSBox2D выглядит неплохо.
Я бы определенно посмотрел на Matter.js, который кажется очень хорошо встроенным и очень быстрым. Я иду по этому пути. http://brm.io/matter-js
Ответ 5
Box2d-html5 также является еще одним портом box2d, включая Google LiquidFun) и активное обновление.
Ответ 6
Box2DWeb поддерживает большую часть API из исходного С++ Box2D, за исключением цепочки.:/
Это самый распространенный Javascript Box2D. Если вам нужна документация API для Box2DWeb, проверьте Box2DFlash. http://www.box2dflash.org/docs/2.1a/reference/
Box2DWeb автоматически создается из Box2DFlash с помощью компилятора. Таким образом, API тот же.
Я сомневаюсь, что Box2DWeb получит какое-либо обновление в будущем, поскольку Box2DFlash больше не показывает никаких действий. Вы можете видеть автора рациональным, почему он решил не писать прямой Box2D → Box2DWeb порт.
https://code.google.com/p/box2dweb/wiki/Roadmap