3

友人と私はWebGLを使用してゲームを開発しており、いくつかの物理エンジンを探した後、ポートまたは弾丸物理ライブラリであるammo.jsを発見しました。簡単な例を実装したところ、FirefoxやSafariと比較してGoogleChromeのフレームレートがひどいことがすぐにわかりました。私が話しているのは、Chromeが10 FPSになるのに対し、Firefoxはかなり一定の60FPSになるということです。

たくさん調べてみたところ、このブログでChromeのライブラリの問題点を正確に説明していることがわかりました。(tl; dr:ammo.jsは、chromeが推奨しない辞書オブジェクトを使用します)

だから私の質問は:辞書を使わずにこのライブラリの移植版はありますか?そうでない場合は、元のC ++の箇条書きコードを変更して再移植する価値がありますか(または実行可能でさえありますか)?上記のオプションのいずれも不可能な場合、JavaScriptのどの物理エンジンをお勧めしますか?

ここでは選択肢がかなり限られていることは知っていますが、質問する価値があると思います。

ありがとう。

4

1 に答える 1

3

元のC++コードがオブジェクト指向である場合、オブジェクトを使用せずにコードをJavaScriptに移植することは可能ではないかと思います。

移植する前にBulletコードを「変更」したい場合は、JavaScriptで有利なもの、つまり型付き配列を使用するように書き直す必要があると思います。そのようにするには、ほとんどのコードを書き直す必要があると思います。その場合は、JavaScriptを直接作成する方が便利です。

ammo.js以外に良い推奨事項はありません。ただし、cannon.jsは新しく開始されたプロジェクトであり、コードが安定したときにニーズを満たすことができます。おそらくあなたはそれに貢献したいですか?

別の方法はFireBreathかもしれません。ブラウザプラグイン開発フレームワークです。ネイティブJavaScript関数を作成するのに役立ちます。Bulletがそのようなプラグインにコンパイルされ、JavaScriptにバインドされている場合は、C++物理エンジンをJavaScriptで使用する準備ができています。もちろん、エンドユーザーは最初にプラグインをダウンロードする必要があります。

于 2012-01-10T16:19:51.923 に答える