Bonjour à tous.
Alors voilà. Je voudrais faire en sorte que mon clip (représenté ici par une voiture vue du dessus) se déplace d'un point A vers un point C de façon réaliste.
Par réaliste j'entends par là que la voiture ne doit pas faire des virages à la TRON (à angle droit !) mais suivre une courbe.
Donc, au début la voiture va en ligne droite d'un point A vers un point B. Avant qu'elle n'arrive au point B je clic quelque part (on crée alors le point C) et la voiture change de direction pour aller vers ce point C. La voiture dois donc faire une courbe pour rejoindre le point C.
De mon coté je sais faire ce déplacement, mais je n'ai pas de courbe et ma voiture tourne de façon pas très réaliste (on dirait qu'elle roule sur de la glace !)
Voici mon code :
var xdif:Number = 0;
var ydif:Number = 0;
_voiture.rotation = 360; // je positionne ma voiture dans la bonne direction. Ici de droite à gauche
goDestination.x = 0;
goDestination.y = 0;
addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void {
// déplacement de la voiture
if(_voiture.x > goDestination.x+2){
_voiture.x = _voiture.x-2;
} else if(_voiture.x < goDestination.x-2){
_voiture.x = _voiture.x+2;
}
if(_voiture.y > goDestination.y+2){
_voiture.y = _voiture.y-2;
} else if(_voiture.y < goDestination.y-2){
_voiture.y = _voiture.y+2;
}
xdif = goDestination.x-_voiture.x;
ydif = goDestination.y-_voiture.y;
// rotation de la voiture
_voiture.rotation = 180+Math.atan2(ydif, xdif)/(Math.PI/180);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, doMouseDown, false, 0, true);
true);
function doMouseDown($evt:MouseEvent):void {
// nouvelle direction au clic de la souris
goDestination.x = mouseX;
goDestination.y = mouseY;
}
Merci à tous pour votre aide.