我有一个可以正常工作的Box2DWeb草图,但是我不知道如何对body使用ApplyForce方法。我已经附上了工作代码。在第85行,我注释掉了我认为可以工作的行,但当我包含它时,一切都消失了。
如果有人能告诉我正确的使用方法,我会很高兴的。我在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());
*/发布于 2015-08-21 00:43:25
应该调用b2Body的ApplyForce方法,而不是b2BodyDef的。world.CreateBody(bodyDef2)方法的结果是可以得到b2Body对象。
我在这里更改了你的代码:http://codepen.io/anon/pen/NqZvqG
你的代码:
world.CreateBody(bodyDef2).CreateFixture(fixDef2);
// Apply force to object----------------------
/*bodyDef2.ApplyForce(new b2Vec2(500,50) , bodyDef2.GetWorldCenter());
*/我的代码:
var myBody = world.CreateBody(bodyDef2);
var myFixture = mybody.CreateFixture(fixDef2);
// Apply force to object
myBody.ApplyForce(new b2Vec2(500,50), myBody.GetWorldCenter());https://stackoverflow.com/questions/30823808
复制相似问题