首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在box2DWeb中使用ApplyForce

如何在box2DWeb中使用ApplyForce
EN

Stack Overflow用户
提问于 2015-06-14 05:40:03
回答 1查看 60关注 0票数 0

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

如果有人能告诉我正确的使用方法,我会很高兴的。我在StackO上看到过类似的帖子,但是我还是做不出来。

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

非常感谢,

史蒂文

代码语言:javascript
复制
// 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());
*/
EN

回答 1

Stack Overflow用户

发布于 2015-08-21 00:43:25

应该调用b2BodyApplyForce方法,而不是b2BodyDef的。world.CreateBody(bodyDef2)方法的结果是可以得到b2Body对象。

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

你的代码:

代码语言:javascript
复制
world.CreateBody(bodyDef2).CreateFixture(fixDef2);

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

我的代码:

代码语言:javascript
复制
var myBody = world.CreateBody(bodyDef2);
var myFixture = mybody.CreateFixture(fixDef2);

// Apply force to object
myBody.ApplyForce(new b2Vec2(500,50), myBody.GetWorldCenter());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30823808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档