线速度与距离在一帧中移动

时间:2016-10-26 02:23:26

标签: javascript box2d

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

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个单位。

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

1 个答案:

答案 0 :(得分:1)

显然,KinematicBody可以在一个步骤中移动多远以防止隧道效应。为了解决这个问题,我不得不缩小一切。