Salutations, Avec javascript, j'essaie de faire une animation très facile, une image passe d'une coordination X et Y à une autre coordination X Y. J'ai 4 constante tels que:aidez-moi à améliorer mon algorithme de base d'animation de point à point
var startX = 0; //starting X of an image
var startY = 0; //starting Y of an image
var endX = 100; //ending X of an image
var endY = 200; //ending Y of an image
//these 2 are used for keeping the "current" position of animated image,
var currentX = startX ;
var currentY = startY ;
//every 150 ms, updates the location of the coordinates
function move(){
if((currentX == endX) && (currentY == endY))
break;
if(currentX < endX){
currentX = currentX + step_amount;
}
if(currentX > endX){
currentX = currentX - step_amount;
}
if(currentY < endY){
currentY = currentY + step_amount;
}
if(currentY > endY){
currentY = currentY - step_amount;
}
setInterval("move()", 150);
}
Cela fait le travail, mais il est pas lisse, je serai reconnaissant si vous me aider à améliorer mon algorithme naïf pour une meilleure fonction de déplacement qui va toujours pour le " le plus court chemin".
Comment définissez-vous/calulate step_amount, et vous ne devriez pas avoir différentes valeurs de pas pour les dimensions x et y si vous voulez vous déplacer en ligne droite? –
Modifiez la dernière ligne à setInterval (déplacement, 50). Ce sera trois fois plus lisse. – scvalex