2016-10-26 2 views
2

KinematicBody를 한 프레임에서 전체적으로 이동시키는 데 필요한 속도를 계산하여 특정 거리만큼 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 
} 

실제로 300 개 단위로 이동하지 않습니다 moveBy(300)를 호출 : 다음 의사의 조각 내가 뭘하는지 설명한다. 그것은 아래로 이동하지만, 거리는 300 단위가 아닙니다.

왜 그런가요? 가능한 해결책은 무엇입니까?

답변

1

분명히 KinematicBody가 터널링을 방지하기 위해 단계에서 이동할 수있는 최대 한계가 있습니다. 이를 해결하기 위해 모든 것을 축소해야했습니다.