所以我发生了一些让我感到困惑的事情,涉及一个不动的身体。我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
值。x
y
所以就在Step
函数调用之前,x 和 y 的值m_linearVelocity
大于零,但是dude.body.GetPosition().x
从上面的代码片段的开头到结尾没有任何变化。
我不知道从哪里开始追踪问题,因为这对我来说毫无意义。有谁知道为什么会发生这种情况?
编辑:我应该补充一点,它在有重力时工作,但在零重力下,它不会移动,即使线速度大于零。