:::::: mxPrototypes ::::::

Retour à l'accueil (site en flash) :::: Retour à l'accueil (site en html ) :::: ajouter aux favoris

fonction return_closest() pour trouver le clip le plus proche d'un autre clip

Cette fonction très utile permet de trouver le movieClip le plus proche d'un clip donné.
Je vous vois déjà baver: "hé mais ça pourrait servir pour un jeux, ça, on detecte si le clip le plus proche est un ami ou un ennemi et..."

Jetez un coup d'oeil à l'exemple ici.

Le fonctionnement est très simple:
On va en effet à l'aide d'une boucle passer en revue tous les clips qui sont au niveau du _root.
A chaque fois, on regarde si le clip courant est plus proche que le plus proche que l'on avait déjà trouvé.
Si c'est le cas, on remplace celui que l'on avait trouvé par celui-ci. Et on relance la boucle.

Ainsi, à la fin on aura forcément le plus proche de tous les clips !

>> explication du code:
les trois premières lignes de la boucle sont destinées à calculer la distance entre les deux clips.
Ensuite, on voit si cette distance résulte plus petite que la précédente distance minimum, et si oui on procède au remplacement des valeurs des variables.



MovieClip.prototype.return_closest=function(){
     var smallest=1000,nearest;
     for(z in _root){
          if(typeof(_root[z]) == "movieclip" && _root[z] != this){
                    var distx=_root[z]._x - this._x;
                    var disty=_root[z]._y - this._y;
                    var dist=Math.sqrt((distx*distx)+(disty*disty));
                         if(dist < smallest){
                              smallest=dist;
                              nearest=_root[z];
               }
          }
     }
     return nearest;
}

.

.Commentaires:

neo:
comment ça un jeu ?
damien:
oui, si tu dis qu'un movieClip c'est un perso, et bien avec cette methode tu peux trouver le perso le plus proche de ton perso, puis après faire ce que tu veux...mais ça peut être utile
righton:
comment ça utile ?
;)
msa:
rep a la maniere de damien: utile dans le sens que si ton perso est gentil et que l'autre est un mechant et que tu as detecte qu'il etait tout pres de toi, tu pourras l'eviter