0

所以我发生了一些让我感到困惑的事情,涉及一个不动的身体。我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_linearVelocity是0.1 和 0.1 的b2Vec2值。xy

所以就在Step函数调用之前,x 和 y 的值m_linearVelocity大于零,但是dude.body.GetPosition().x从上面的代码片段的开头到结尾没有任何变化。

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

编辑:我应该补充一点,它在有重力时工作,但在零重力下,它不会移动,即使线速度大于零。

4

1 回答 1

0

找到了我自己的问题的答案。但是,而不是WakeUp()示例中的函数,我需要使用SetAwake(true)

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

于 2013-06-16T10:44:03.597 回答