J'essaie de déplacer une KinematicBody d'une distance spécifique en calculant la vitesse correspondante nécessaire pour la déplacer complètement dans une image. Ci-dessous est un morceau de pseudocode décrit ce que je fais:Vitesse linéaire par rapport à la distance déplacée dans une image
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
}
Appel moveBy(300)
ne se déplace pas en fait par 300 unités. Il descend, mais la distance n'est pas de 300 unités.
Pourquoi est-ce et qu'est-ce qu'une solution possible?