どのBox2D JavaScriptライブラリを使用すればよいですか?[閉まっている]


89

JavaScript用のBox2Dにはいくつかの異なるポートがあります。どれが一番いいですか?

http://chrome.angrybirds.com/が使用しているアイデアがある場合、そのアイデアはありますか?


Box2Dポートである必要はありません。たとえば、Matter.jsp2.jsはどちらもかなり安定しているようです。
トーマス

@トーマス同意する。しかし、質問が尋ねられた時間を見てください。当時、Matter.jsとp2.jsはまだ出ていないと思います。
newguy

おそらく、しかし私はこの質問がグーグルで出てきたと思います...あなたの後に来る人のための有用な指針でSOを最新にしようとすることに害はありません:)
トーマス

回答:


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]
  • box2dwebは、Box2DJS [3]より「はるかに新しいポートであり、問​​題がはるかに少ない」です。ただし、切り替えによって新しい問題が発生する可能性があります[4]
  • Box2DJSはプロトタイプに依存しますが、box2dwebは依存しません[5]
  • Seth Laddは、彼のブログ[6]に例を示し、box2dwebを宣伝しています
  • 3番目の代替案を使用している人はいないようです。
  • Box2Dに基づいていない物理シミュレータもあります。Matter.jsp2.jsを確認する

gamedev.stackexchange.comに同様の議論があります。

勝者はkripken / box2d.jsだと思います。


box2dは、box2dwebほど最新ではありません。多くのコアクラスが縮小ファイルから欠落しています。
dopatraman 2013年

1
私は自分の既存のiOS box2Dゲームを移植する1つのプロジェクトでbox2dJSを個人的に使用しました。バージョンの違いでわかったのは、iOSの一部のコードがJSバージョンで機能せず、開発が停止することです。その後、半週間かけてすべてのコードをbox2dwebに変更しましたが、すべてがiOSのbox2dゲームと同じように正常に機能しました。したがって、バージョンの違いは非常に重要です。
Makzan 2013

emscriptenポートはかなりクールですが、前回使用したときにバグがあり(ランダムなフリーズを含む)、emscriptenの性質上、デバッグが非常に難しいことがわかりました。
バニーヒーロー2015

2
@aPaidNerdこれはまだ最新ですか?
Ken

2
最近、Planckと呼ばれる新しいBox2dに移植されたJS物理エンジンが出ました。それをチェックしてください:github.com/shakiba/planck.js
newguy

13

この質問とその最良の回答は2011年のものです。最近の新しいオプションの1つは、C ++コードをJavascriptにEmscriptenで変換したbox2.jsです。2013年8月の時点で、私が見つけた他のポートよりも最新であり、デモは機能しているようです。


おかげで@ネルソン、私は質問にそれを追加しました
有料オタク

私はこれらのライブラリを使用しませんでしたが、box2d.jsと「fun with VTables」はクールに聞こえません。
cubuspl42 2013

8

LiquidFun(JSバインディングあり)

LiquidFunは、私がこれを投稿している時点では、JSへの最新の移植版です。Box2Dのすべての機能と液体物理機能を備えています。emscriptenを使用して移植されているため、パフォーマンスはまともです。

google / liquidfun

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


私は最近これに遭遇し、パイプを介してタンクやバルブなどに流れる水をシミュレートするのに理想的に見えます。これは、私が見ているプロジェクトの良い解決策になるでしょう。ライブラリを実際に私のJavaScriptに組み込む方法についてのチュートリアルはありますか?ドキュメントは少々不足しているようです
ボブ・ハスレット

6

おそらく、Box2D JavaScriptポートを最新の状態に保つのに最適な場所は、公式フォーラムです:http ://box2d.org/forum/viewforum.php?f=22

JSBox2Dは良いスタートのようです。

私は間違いなくMatter.jsを調べます。これは非常によく構築されており、非常に高速に見えます。私はこの道を進みます。http://brm.io/matter-js


1
Matter.jsはどのように機能しましたか?
David Y. Stephenson


0

Box2DWebは、チェーン形状を除いて、元のC ++ Box2DのほとんどのAPIをサポートしています。:/

最も広く使用されているJavascript Box2Dです。Box2DWebのAPIドキュメントが必要な場合は、Box2DFlashを確認してください。http://www.box2dflash.org/docs/2.1a/reference/

Box2DWebは、コンパイラを使用してBox2DFlashから自動生成されます。したがって、APIは同じです。

Box2DFlashがアクティビティを示さなくなったため、Box2DWebが今後更新されることはないと思います。彼が直接Box2D-> Box2DWebポートを書かないことにした理由についての著者の合理性を見ることができます。

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


これまでのBox2Dの次の候補はPhysicsJSです。wellcaffeinated.net/PhysicsJS/(my 2cents)
Vennsoh 2014

GoogleはI / O 2014中にプラグイン、LiquidFun(Go google)をリリースしました。それを使用するにはBox2D v2.3が必要です。それはかなり素晴らしいです。
Vennsoh 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.