尽管在box2d前花了几个小时,但我仍然不明白applyforce和applyimpulse是如何工作的。我试图使用一些视觉来更好地理解正在发生的事情(通过在身体位置和应用点之间划线),但我尝试得越多,它就越没有意义。
我想使用 applyimpulse 让我的 box2d 身体向应用点的方向跳跃(在此尝试中为鼠标坐标)。它去了所需点以外的任何地方...
以下是我到目前为止的一些尝试:
b.ApplyImpulse(
new b2Vec2(g.mouseX/SCALE,g.mouseY/SCALE),
new b2Vec2(b.GetPosition().x,b.GetPosition().y));
反之亦然
b.ApplyImpulse(
new b2Vec2(b.GetPosition().x,b.GetPosition().y),
new b2Vec2(g.mouseX/SCALE,g.mouseY/SCALE));
两者都产生了我完全不理解的不可预测的结果。
有人可以像我 5 岁一样向我解释 ApplyImpulse 吗?如何确定冲动的强度?方向呢?似乎没有人在互联网上解释这一点。
请原谅我糟糕的物理背景,我已经尝试了许多不同的方法,这个问题几乎让我在使用 Box2d 时卡住了。
提前非常感谢!
我认为问题可能是画布的位置,将鼠标坐标替换为删除canvas.left
,它可以工作