如何在box2DWeb中使用ApplyForce

时间:2015-06-13 21:40:03

标签: box2dweb

我有一个Box2DWeb草图正常工作,但我无法弄清楚如何使用身体的ApplyForce方法。我附上了工作的代码。在第85行,我已经注释掉了我认为可行的行,但是当我包含它时,一切都消失了。

如果有人能告诉我使用它的正确方法,我会非常高兴。我有RTFM并在StackO上看过类似的帖子,但我仍然无法解决它。

http://codepen.io/anon/pen/vOJByN?editors=101

非常感谢,

史蒂芬

// single dynamic object----------------------
  var fixDef2 = new b2FixtureDef;
  fixDef2.density = 1.0
  fixDef2.friction = 0.2;
  fixDef2.restitution = 0.5;

  var bodyDef2 = new b2BodyDef;
  bodyDef2.type = b2Body.b2_dynamicBody;

  fixDef2.shape = new b2PolygonShape;
  fixDef2.shape.SetAsBox((300/SCALE)/2, (60/SCALE) / 2);

  bodyDef2.position.x = canvas.width/4/SCALE;
  bodyDef2.position.y = canvas.height/2/SCALE;
  bodyDef2.angle = 5;

  world.CreateBody(bodyDef2).CreateFixture(fixDef2);

// Apply force to object----------------------
/*bodyDef2.ApplyForce(new b2Vec2(500,50) , bodyDef2.GetWorldCenter());
*/

1 个答案:

答案 0 :(得分:0)

您应该调用ApplyForce的{​​{1}}方法,而不是b2Body。您可以b2BodyDef方法获得b2Body个对象。

我在这里更改了您的codepen:http://codepen.io/anon/pen/NqZvqG

您的代码:

world.CreateBody(bodyDef2)

我的代码:

world.CreateBody(bodyDef2).CreateFixture(fixDef2);

// Apply force to object----------------------
/*bodyDef2.ApplyForce(new b2Vec2(500,50) , bodyDef2.GetWorldCenter());
*/