是否在liquidfun.js中替换了b2DebugDraw和b2ContactListener?

时间:2014-09-17 20:02:10

标签: javascript box2d physics-engine box2dweb liquidfun

我试图用 Google的LiquidFun 库替换我当前的Box2D库( box2dweb.js )。

主要区别似乎是他们将所有 b2#ClassName#类放在全局范围内,而不是保持模块化(在Box2D.*命名空间中,如 box2dweb 做了)。

但似乎他们也省略了一些 b2#ClassName#,其中两个是我在Box2dWeb.js版本中使用的:

  • b2DebugDraw ,和;
  • b2ContactListener

那些已弃用/未完全实施/遗忘?

1 个答案:

答案 0 :(得分: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翻译问题,这是一个很好的起点。