我应该使用哪个Box2D JavaScript库?

时间:2011-10-02 17:40:54

标签: javascript box2d

JavaScript有几个不同的Box2D端口。哪一个最好?

  • Box2DJS - “以自动方式从Box2DFlashAS3_1.4.3.1转换”

  • Box2Dflash 2.0 ported to JavaScript - “恰好工作的一个令人讨厌的黑客”

  • box2dweb - “一个Box2DFlash 2.1a到JavaScript的端口。我开发了一个ActionScript 3到JavaScript转换器来生成代码”

  • HBehrens/box2d.js - “Box2D 2.1a的JavaScript版本”(2011年11月21日添加)

  • kripken/box2d.js - “使用Emscripten将Box2D 2D物理引擎直接移植到JavaScript”(已于2013年9月24日添加)

版本http://chrome.angrybirds.com/使用的任何想法,如果有的话?

6 个答案:

答案 0 :(得分:75)

  

读者注意!

     

此问题最初是在2011年提出并回答的,但我会尽力保持最新状态!

这是我发现的:

  • kripken/box2d.js是使用Emscripten的Box2D的一个端口,运行良好且速度很快。我个人使用这个非常成功。
  • 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取决于Prototype但box2dweb不是[5]
  • Seth Ladd在他的博客[6]
  • 上推广了box2dweb
  • 似乎没有人使用第三种选择。
  • 还有基于Box2D的物理模拟器。查看Matter.jsp2.js

还有a similar discussion on gamedev.stackexchange.com

我说胜利者是kripken / box2d.js。

答案 1 :(得分:12)

这个问题及其最佳答案来自2011年。最近的一个新选项是box2.js,这是C ++代码向Javascript的Emscripten翻译。截至2013年8月,它比我发现的其他端口更新,并且演示似乎有效。

答案 2 :(得分:7)

LiquidFun(使用JS Bindings)

当我发布这篇文章时,LiquidFun是JS的最新端口。它具有Box2D和液体物理特性的所有功能。它是使用emscripten移植的,所以性能很不错。

google/liquidfun

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

答案 3 :(得分:6)

与Box2D JavaScript端口保持同步的最佳位置可能是官方论坛:http://box2d.org/forum/viewforum.php?f=22

JSBox2D 看起来是一个好的开始。

我肯定会看看 Matter.js ,这看起来非常好,非常快。我走这条路。 http://brm.io/matter-js

答案 4 :(得分:3)

Box2d-html5也是另一个box2d端口,包括Google的LiquidFun)和有效更新。

答案 5 :(得分:0)

Box2DWeb支持原始C ++ Box2D中除链形状外的大部分API。 :/

它是使用最广泛的Javascript Box2D。如果您需要Box2DWeb的API文档,请查看Box2DFlash。 http://www.box2dflash.org/docs/2.1a/reference/

使用编译器从Box2DFlash自动生成Box2DWeb。因此API是相同的。

我怀疑Box2DWeb将来会得到任何更新,因为Box2DFlash已经不再显示任何活动了。你可以看到作者对于他为什么决定不写直接Box2D的理性 - > Box2DWeb端口。

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