La animation es muy rápida

Tengo una animation de una bala, pero parece ir mucho más rápido de lo que esperaba.

Actualmente lo configuro en 0.5 pixels per second pero parece estar moviéndose a través de cientos de píxeles por segundo.

No estoy seguro de dónde está yendo mal mi lógica:

Esto está dentro de mi GameLoop que estoy usando para calcularlo:

 var deltaTime = (new Date().getTime() - started) / 1000; // divide to get seconds var position = deltaTime * bulletVelocity; //bulletVelocity is 0.5 var vectorX = destinationX - startX; var vectorY = destinationY - startY; var distance = Math.sqrt(vectorX * vectorX + vectorY * vectorY); var x = startX + (vectorX * position); var y = startY + (vectorY * position); if (x < destinationX && y < destinationY) { ctx2.drawImage(pulse, x, y); //draw the sprite on canvas } 

¿Tengo mi lógica mal aquí? No puedo entender por qué se mueve tan rápido.

Olvidaste dividir 'vectorX' y 'vectorY' por 'distancia'.

Si haces eso, el código debería funcionar.