所以我发生了一件令我困惑的事情,涉及一个不动的身体。我在一个正文上使用了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
是b2Vec2
,x
值为0.1,y
值为0.1。
因此,在Step
函数调用之前,m_linearVelocity
的x和y值大于零,但dude.body.GetPosition().x
从上面开始时从未有任何变化摘要到底。 p>
我不知道从哪里开始追查问题,因为这对我没有意义。有谁知道为什么会发生这种情况?
编辑:我应该补充说,它在有重力的情况下有效,但在零重力下,即使线速度大于零也不会移动。
答案 0 :(得分:0)
找到我自己的问题的答案。但是,我需要使用WakeUp()
:
SetAwake(true)
函数