3

現在の Box2D ライブラリ ( box2dweb.js ) をGoogle の LiquidFunライブラリに置き換えようとしています。

主な違いは、すべてのb2#ClassName#クラスをモジュラー ( box2dwebBox2D.*のような名前空間)に保つのではなく、グローバル スコープに配置したようです。

しかし、彼らはいくつかのb2#ClassName#を省略したようにも見えます。そのうちの 2 つは Box2dWeb.js バージョンから使用していました。

  • b2DebugDraw、および;
  • b2ContactListener ;

それらは非推奨/完全に実装されていない/忘れられていますか?

4

1 に答える 1

1

次のように、リスナーを関数のオブジェクトとして定義するだけです。

var listener =  {
    BeginContactBody: function(contact) {
      console.log(contact.GetFixtureA());
    },
    EndContactBody: function(contact) {
        console.log(contact.GetFixtureA());
    },
    PostSolve: function(contact, impulse) {

    },
    PreSolve: function(contact, oldManifold) {

    }
}
world.SetContactListener(listener);

https://github.com/google/liquidfun/blob/master/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.jsを見ると、これを解決するのに役立ちました。他の c++ -> javascript 変換の問題に遭遇した場合、それは良い出発点です。

于 2015-02-27T09:42:30.553 に答える