Ich habe ein Objekt, das zu einem Ziel bewegt. Das Problem ist, dass die x-Position schneller ist als die z-Position oder die z-Position schneller ist als die x-Position.Three.js Objekt bewegt sich zum Ziel
Was kann ich tun, dass mein Objekt für die x-Position langsamer wird, wenn die z-Position mehr Zeit zum Verschieben benötigt?
Mein Code in der Animationsfunktion:
var distanceX = objectX - targetX;
var distanceZ = objectZ - targetZ;
if(distanceX < 0) {
visitor.translateX(0.05);
}else {
if(distanceX > 0) {
visitor.translateX(-0.05);
}
}
if(distanceZ < 0) {
visitor.translateZ(0.05);
}else{
if(distanceZ > 0) {
visitor.translateZ(-0.05);
}
}
'Date.now()' wird immer einen Zeitstempel (siehe https://en.wikipedia.org/wiki/Unix_time) mit Millisekunden-Genauigkeit zurückgeben, in diesem Fall würde Ihre Animation für nur 5 Millisekunden laufen (sollte sei '5000'). Außerdem können Sie die startTime nicht nur auf 1 setzen, sondern müssen sie auf den Zeitstempel der Startzeit der Animation einstellen: 'var startTime = Date.now();' –