线速度x和y大于零,但仍然没有移动

时间:2013-06-15 20:31:00

标签: javascript box2dweb

所以我发生了一件令我困惑的事情,涉及一个不动的身体。我在一个正文上使用了SetLinearVelocity()成员函数,如下所示:

dude.body.SetLinearVelocity(new b2Vec2(0.1, 0.1));

然后我在调用console.log()函数之前放置Step

console.log(dude.body.GetPosition().x);
console.log(dude.body.m_linearVelocity);
world.Step(1/60, 10, 10);
console.log(dude.body.GetPosition().x);

这是在我的游戏动画循环中,所以console.log被反复调用。它说m_linearVelocityb2Vec2x值为0.1,y值为0.1。

因此,在Step函数调用之前,m_linearVelocity的x和y值大于零,但dude.body.GetPosition().x从上面开始时从未有任何变化摘要到底。

我不知道从哪里开始追查问题,因为这对我没有意义。有谁知道为什么会发生这种情况?

编辑:我应该补充说,它在有重力的情况下有效,但在零重力下,即使线速度大于零也不会移动。

1 个答案:

答案 0 :(得分:0)

找到我自己的问题的答案。但是,我需要使用WakeUp()

,而不是示例中的SetAwake(true)函数

http://www.box2d.org/forum/viewtopic.php?f=8&t=3181