Javascript 一帧中移动的线速度与距离

Javascript 一帧中移动的线速度与距离,javascript,box2d,Javascript,Box2d,我试图通过计算在一帧内移动一个运动体所需的相应速度,将它移动一个特定的距离。下面是一段伪代码,描述了我正在做的事情: var v = 0; function update(){ // do update world.Step(1/60, 10, 10); // do rendering stuff // set linear velocity to v objectBody.SetLinearVelocity(new b2Vec2(0, v));

我试图通过计算在一帧内移动一个运动体所需的相应速度,将它移动一个特定的距离。下面是一段伪代码,描述了我正在做的事情:

var v = 0;
function update(){
    // do update
    world.Step(1/60, 10, 10);

    // do rendering stuff

    // set linear velocity to v
    objectBody.SetLinearVelocity(new b2Vec2(0, v));
    // reset v to 0
    v = 0;

    // wait 16.6ms

    update();
}

function moveBy(n){
    v = n * 60;  // set velocity to be n units/sec
}
调用
moveBy(300)
实际上不会将其移动300个单位。它确实向下移动,但距离不是300个单位


为什么会这样?可能的解决方案是什么?

显然,为了防止隧道掘进,一个运动学体在一个台阶中可以移动的距离有一个最大限度。为了解决这个问题,我必须缩小所有的规模