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

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

fonction regularTo() pour se déplacer vers un point à vitesse constante

Dans ce tutorial, nous allons voir comment faire bouger régulièrement un clip d'un endroit à l'autre.
Cette fois-ci, il faudra d'une part:
la première fois que la fonction est lancée, calculer la distance à parcourir, la diviser par le nombre d'images exigé pour avoir la distance à parcourir par image.
D'autre part, à chaque fois que la fonction est lancée, voir si on n'est pas arrivé à destination grâce à un compteur, et deplacer le clip de la distance calculée la première fois.
(Note: les distances sont décomposées sur les deux axes, x et y)

On utilisera une variable, 'go' pour savoir ce que la fonction doit faire:
+ si elle vaut 'null' c'est à dire si elle n'est pas définie, c'est qu'il faut calculer les distances par image, qui resteront ensute fixes.
+ si elle vaut 'true', c'est que tout va bien, on est en chemin, il faut déplacer le clip encore une fois.
+ si elle vaut 'false' c'est qu'on est arrivé à destination.

L'interet d'une telle variable c'est qu'elle va permettre dans le futur (voir script 'waypoints') de savoir ce qu'un movirClip est en train de faire.
Très pratique.

Ainsi donc, voila le script, comme prévu, la première partie ne s'execute qu'une fois, et calcule la distance à franchir à chaque image, 'vx' et 'vy' (décomposée en x et y). On initialise ensuite le compteur en 0.
Dans la deuxième partie, la première ligne fait trois choses:
+ elle teste si la valeur de 'count' est inférieure à celle de 'nbFrames', auquel cas le clip n'est pas encore arrivé à destination.
+ elle incrémente la variable 'count' de 1.
+ elle attribue à la variable 'go' le résultat du test, vrai ou faux ('true' ou 'flase').

Ensuite, au cas où l'on n'est pas arrivé à destination, on bouge le clip de la distance fixée.

Remarque: en fait, on regroupe deux fonction en une:
la première qui calcule tout, c'est elle qui a besoin des paramêtres.
la deuxième, qui ne fait que bouger le clip, n'a besoin d'aucun paramêtre.

De cette façon, on n'a au final qu'une seule fonction, ce qui est très pratique.
(note: n'oubliez pas que la fonction doit tourner en boucle)
Regardez un exemple tout simple ici.
movieClip.prototype.regularTo = function(x,y,nbFrames){
	if(this.go==null)
	{
		this.vx = (x-this._x)/nbFrames;
		this.vy = (y-this._y)/nbFrames;
		this.count=0;
	}

	if(this.go=(this.count++ < nbFrames))
	{
		this._x += this.vx;
		this._y += this.vy;
	}
}
.

.Commentaires:

robert:
c'est nul à chier ;-)
robert:
je déconne ;-)
damien:
ah bon ! :D
damien:
ce script c'est le b.a-ba pour déplacer des movieClips à vitesse constante, en un temps donné
Newbie:
Super, c'est ce que je cherchais.Merci! :)
Sacha:
c'est super bien !!!!!
:

lol:
lol !!
msa:
code simple et explications remarquables; yapas mieux
venom$:
putin ton truc est nul, tu n'explique meme pas comment placer les cript, tu y a penser au debutant
AfroGanjaMan:
Je suis entrain de faire un jeu sous flash mais je n'arrive pas a incorporé ton script
kmkzz:
evidemment, comme pour moi c'est du chinois, ça marche pas avec mon anim...je veux que mon clip (1 panoramique de ciel) se déplace sur une courte distance mais non saccadée (bcp de frames si je devais utiliser l'interpolation de mvt...)- Où je colle ce script ? sur le mc 'ciel', sur la frame du mc, dans mon cul : ) ?- comment je rentre la vitesse de déplacement et la distance à parcourir
moivche:
tu chambre avec tes codes ou koi ??po un ne marche
Soo:
Merci Damien pour ces tutos bien expliqué et scripts \nBonne continuation
Eruil:
vraiment sympa et efficace :) merci
Mathieu.sub:
Dommage que l'on ne puisse pas télécharger le fichier flash ! Mais merci quand même ;)
titi:
Pas mal du tt ;)