2016-10-26 14 views
2

私はKinematicBodyを特定の距離だけ移動させようとしています。線速度と距離を1つのフレーム内で移動

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 
} 

が実際に300個の単位でそれを移動しないmoveBy(300)の呼び出し:下記の擬似コードの作品は、私がやっているものを記載しています。それは下に移動しますが、距離は300単位ではありません。

なぜそれが可能なのでしょうか?

答えて

1

明らかに、トンネリングを防止するためにKinematicBodyがステップ内でどれだけ移動できるかの上限があります。これを解決するために私はすべてを縮小しなければならなかった。

関連する問題