Suivre

cs_Anonyme54 Messages postés 22 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 10 juin 2007 - 11 févr. 2006 à 14:29
cs_Anonyme54 Messages postés 22 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 10 juin 2007 - 13 févr. 2006 à 18:21
Bonjour,
J'aimerais faire un clip qui va vers un autre (en x et en y) mais je ne sais pas comment faire pour que ce soit précis car j'ai essayé comme ça :
onClipEvent(enterFrame){
if(_x < _root.objet2._x){
_x += 5
}
if(_x > _root.objet2._x){
_x -= 5
}
if(_y < _root.objet2._y){
_y += 5
}
if(_y > _root.objet2._y){
_y -= 5
}
}
mais le problème, c'est qu'il ne prend pas le chemin le plus court, il ne peux aller que de 0° , 45° , 90° , 135 ° , 180° , 225° , 270° et 315°. Comment faire pour qu'il puisse aussi aller de 1° , 2° , 3° etc ?
J'espère que qqun pourra m'aider...

5 réponses

atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
11 févr. 2006 à 19:35
Bonjour

pour cela je penserais utiliser la trigo pour déterminer l'angle entre l'horizontale et le clip destination que l'on rentre dans un paramatre a, pouis on avance sur _x de vitesse*Math.cos(a) et sur _y de vitesse*Math.sin(a) avec vitesse une valeur positive

c'est une premiere idée si tu veux réfléchir dessus, si tu ne comprends pas très bien ce que je veux dire signale le et je donnerais plus de détails et d'aide

Bonne chance
0
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
13 févr. 2006 à 11:29
Coucou

alors pas de nouvelles de toi...tu y arrives ou tu aurais besoin d'encore un peut d'aide?
0
cs_Anonyme54 Messages postés 22 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 10 juin 2007 1
13 févr. 2006 à 17:26
Re !
J'aurais encore besoin d'aide stp,
J'ai essayé de plusieurs façon mais je n'y arrive pas ...
0
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
13 févr. 2006 à 17:56
Je t'ai fait un exemple la mais je n'ai pas commenté la source, je te fais le commentaire ici:

le fla est jsute sur la premiere frame, il y a deux clips carre1 et carre2

carre 1 est celui qui suit carre2

carre2:
on (press) {
this.startDrag(false);
}
on (release) {
this.stopDrag();
}
on (releaseOutside) {
this.stopDrag();
}ceci sert juste a pouvoir le déplacer en cliquant dessus

carre1:
onClipEvent (enterFrame) {
vitesse = new Number(5);
var deltaX = new Number(_root.carre2._x-this._x);
var deltaY = new Number(_root.carre2._y-this._y);
if (Math.sqrt(deltaX*deltaX+deltaY*deltaY)>vitesse) {
if (deltaX<0) {
if (deltaY<0) {
var angle = new Number(Math.PI-Math.atan(deltaY/deltaX));
} else {
var angle = new Number(-Math.PI-Math.atan(deltaY/deltaX));
}
} else {
var angle = new Number(-Math.atan(deltaY/deltaX));
}
this._x += vitesse*Math.cos(angle);
this._y -= vitesse*Math.sin(angle);
}
}
on commence par initialiser la vitesse voulue puis on mesure les écarts sur _x et _y (attention les coordonnées sont relatives au clip parent) puis on teste la distance entre les clips qui doit etre plus faible que vitesse (on a des effets de clignotement sans cela)
ensuite on fait de la trigo pour avoir l'angle entre l'horizontale (partant vers la droite) et tournant dans le sens anti horaire (les formules on s'y habitue) et grace a cet angle on a la direction que l'on veut donner au clip il suffit donc d'incrémenter _x et _y de la projection sur les axes ( - pour _y car en cours j'utilise un repere avec y vers la haut alors que dès que l'on programme il est dirigé vers le bas.

Bon le code n'est surement pas optimisé on doit pouvoir faire mieux au niveau de la trigo

voili voilou bonne continuation (et n'hésite pas a continuer le topic si tu désires d'autres explications, si c'est OK alors valide la réponse stp)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anonyme54 Messages postés 22 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 10 juin 2007 1
13 févr. 2006 à 18:21
Merci beaucoup, ça marche bien comme ça !
0
Rejoignez-nous