我应该使用哪个Box2D JavaScript库?[关闭]


89

Box2D for JavaScript 有一些不同的端口。哪一个是最好的?

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

  • Box2Dflash 2.0移植到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/使用哪个版本?


它甚至不必是Box2D端口。例如,Matter.jsp2.js看起来都非常可靠。
托马斯

@托马斯,我同意。但是看看问这个问题的时间。当时我相信Matter.js和p2.js尚未问世。
newguy

可能是这样,但是我认为这个问题出现在Google中...试图向那些
Thomas

Answers:


85

敬请读者注意!

这个问题最初是在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]
  • 与Box2DJS [3]相比,box2dweb是“更新得多的端口,并且问题少得多” 。但是,切换可能会引入新问题[4]
  • Box2DJS依赖于原型,但是box2dweb不依赖于原型[5]
  • 塞思·拉德(Seth Ladd)通过他的博客中的示例推广了box2dweb [6]
  • 似乎没人在使用第三种选择。
  • 还有一些基于Box2D的物理模拟器。查看Matter.jsp2.js

gamedev.stackexchange.com上也有类似的讨论

我想说的赢家是kripken / box2d.js。


box2d不如box2dweb最新。缩小文件中缺少很多核心类。
dopatraman

1
我个人在移植现有的iOS box2D游戏的一个项目中使用了box2dJS。我发现版本差异是iOS上的某些代码无法在JS版本中运行,并且开发暂停。在那之后,我花了半个星期的时间将所有代码更改为box2dweb,所有事情都可以像我的iOS box2d游戏一样正常工作。因此版本差异非常重要。
Makzan

emscripten端口非常酷,但是由于emscripten的性质,我上一次使用它时发现它有故障(包括随机冻结),并且很难调试。
bunnyhero

2
@aPaidNerd仍然是最新的吗?
肯(Ken)

2
一个新的Box2d移植的JS物理引擎称为planck的最近发布了,请查看:github.com/shakiba/planck.js
newguy

13

这个问题及其最佳答案来自2011年。box2.js是C ++代码到Javascript的Emscripten转换,这是一个最近的新选择。截至2013年8月,它比我发现的其他端口更新,并且该演示似乎可以正常工作。


感谢@Nelson,我将其添加到了问题中
一个付费书呆子

我没有使用这些库中的任何一个,但是box2d.js和“通过VTables进行娱乐”听起来并不酷。
cubuspl42

8

LiquidFun(带有JS绑定)

在我发布本文时,LiquidFun是JS的最新端口。它具有Box2D的所有功能和液体物理学的功能。它使用emscripten进行移植,因此性能不错。

google / liquidfun

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


我最近遇到这个问题,它对于模拟流经管道,水箱和阀门等的水来说非常理想。对于我正在研究的项目,这将是一个很好的解决方案。是否有任何教程,特别是如何将库实际添加到我的JavaScript中。文档似乎有点稀缺
Bob Haslett



0

Box2DWeb支持原始C ++ Box2D的大多数API,但链形除外。:/

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

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

我怀疑Box2DWeb将来是否会得到更新,因为Box2DFlash不再显示任何活动。您可以看到作者为什么决定不直接编写Box2D-> Box2DWeb端口。

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


到目前为止,Box2D的下一个竞争者是PhysicsJS。wellcaffeinated.net/PhysicsJS/(我的2cents)
Vennsoh 2014年

Google在2014年I / O期间发布了一个名为LiquidFun(Go google)的插件。您需要Box2D v2.3才能使用它。太棒了
Vennsoh 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.