我对Box2D中的力量如何运作感到有些困惑。我试图使用Kripken的Box2D.js来实现一个简单的代理,具有一些基本的转向行为。我尝试应用像Daniel Shiffman在The Nature of Code中描述的转向力:steering_force = desired_velocity - actual_velocity
。我在计算这个力量时没有遇到任何麻烦,但是当我应用它时我会感到困惑(我将它应用到身体前方的一个点)。身体朝着我期待的方向移动,但没有旋转。我应该单独施加扭矩吗?
谢谢!我猜的不是一个问题
答案 0 :(得分:-1)
是的,例如,如果你想向左或向右移动,你应该创建两个力,如下面的" l"和" r"和一个单独的转向力量。 这里5表示力的大小。 下面的代码将使用键盘左右箭头键
PVector l = new PVector (-5, 0);
PVector r = new PVector (5, 0);
void keyPressed() {
if (key==CODED) {
if (keyCode==LEFT) {
mover.applyForce(l);
mover.update();
}
if (keyCode==RIGHT) {
mover.applyForce(r);
mover.update();
}
}
}