这个问题是关于 JavaScript 中的 Box2D v2.2.1(通过 Emscripten 编译)。
一些结构喜欢b2Vec2
并且b2BodyDef
工作得很好。
我可以创建两者的实例,如下所示:
new Box2D.b2Vec2(0,0); // returns b2Vec {..}
new Box2D.b2BodyDef(); // returns b2BodyDef {..}
但是,其他结构,例如b2MassData
和b2Manifold
不,请注意:
new Box2D.b2MassData(); // Error: "TypeError: undefined is not a function"
new Box2D.b2Manifold(); // Error: "TypeError: undefined is not a function"
在处理使用这些结构的类时,这会导致奇怪的行为:
// Setup
gravity = new Box2D.b2Vec2( 0, 10 ); // returns b2Vec {..}
world = new Box2D.b2World( gravity ); // returns b2World {..}
// Problem 1
bodyDef = new Box2D.b2BodyDef(); // returns b2BodyDef {..}
body = world.CreateBody(bodyDef); // returns b2Body {..}
massData = body.GetMassData(); // "TypeError: Cannot read property 'ptr'
// of undefined."
// Problem 2
contact = world.GetContactList(); // returns b2Contact {..}
manifold = contact.GetManifold(); // returns Object {..} NOT b2Manifold {..}
normal = manifold.get_localNormal(); // "TypeError: Object #<Object> has
// no method 'get_localNormal'."
我怎样才能修复这些结构以及其他类似结构的使用?