Boules de neige avec fonction duplicatemovieclip (modifiée compatible mx)

Soyez le premier à donner votre avis sur cette source.

Vue 10 040 fois - Téléchargée 1 673 fois

Description

Ce code créer tout d'abord un cercle en action script (merci cerdrcici).
Ce cercle est ensuite répliqué 200 fois chaque clip ayant une position, un alpha , un yscale et xscale aléatoire.
Leur déplacement vertical est regulier tandis que leur déplacement horizontal suit les mouvement d'une fonction cosinus (ce qui donne un effet de va et vien)
Tout le script est positioné sur l'image 1 du calque action il n'y a que du code, rien dans la blibliothéque et seulement une image

Source / Exemple :


// On crée ici l'objet MovieClip.prototype.asrond comprenant 4 variables : position horizontale, position verticale, rayon du cercle et facteur de qualitée.
//Merci cedricici pour le code ! (http://www.flashkod.com/)
MovieClip.prototype.asrond = function(X, Y, R, Q) {
	Q *= 4;
	alpha = (2*Math.PI/Q);
	with (this) {
		lineStyle(1, 0xFFFFFF, 100);
		beginFill(0xFFFFFF);
		moveTo(X, Y+R);
		for (i=0; i<Q; i++) {
			Bx = (Math.sin(i*alpha)*R)+(Math.cos(i*alpha)*(Math.tan(alpha/2)*R));
			By = (Math.cos(i*alpha)*R)-(Math.sin(i*alpha)*(Math.tan(alpha/2)*R));
			Cx = Math.sin((i+1)*alpha)*R;
			Cy = Math.cos((i+1)*alpha)*R;
			curveTo(X+Bx, Y+By, X+Cx, Y+Cy);
		}
		endFill();
	}
};
// ici on crée un Clip vide de nom boule sur le level 0
_root.createEmptyMovieClip("boule", _root);
// on applique le prototype asround a boule
boule.asrond(-10, -10, 7, 2);
// i = 1 ...
i = 1;
// si i est inferieur a 200
while (i<200) {
	// on copie le clip boule et on lui attribue le nom boule+i (si i = 2, boule2)
	boule.duplicateMovieClip("boule"+i, i);
	// la position horizontale de ce nouveau clip sera egale a un nombre au hasard compris entre 0 et 1 multiplié par 500
	_root["boule"+i]._x = Math.random()*(550);
	// la position verticale de ce nouveau clip sera egale a un nombre au hasard compris entre 0 et 1 multiplié par 400
	_root["boule"+i]._y = Math.random()*(400);
	// le niveau d'alpha de ce nouveau clip sera egale a un nombre au hasard entre 0 et 99
	_root["boule"+i]._alpha = random(100);
	// la taille horizontale de ce nouveau clip sera egale a un nombre au hasard entre 0 et 99 pour cent de la taille initiale de "boule"
	_root["boule"+i]._xscale = random(100);
	// la taille verticale de ce nouveau clip sera egale a sa taille horizontale
	_root["boule"+i]._yscale = _root["boule"+i]._xscale;
	// ici on definie la direction des boules
	_root["boule"+i].onEnterFrame = function() {
		// la position verticale du nouveau clip augmentera de quatre 12 fois par seconde
		this._y += 4;
		// // la position horizontale du nouveau clip augmentera du cosinus (de la position verticale multiplié par 3) multiplié par cinque 12 fois par seconde
		this._x += Math.cos(this._y*3)*5;
		// si la position de la boule est superieur a 400 (le bas de la scene) la boule se replace en haut de la scene
		if (this._y>=400) {
			//la boule se replace en haut de la scene
			this._y = 0;
		}
	};
	// on augmente i de 1
	i++;
}

Conclusion :


Merci a tous et bonne prog !

Codes Sources

A voir également

Ajouter un commentaire Commentaires
imagora Messages postés 1 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 26 janvier 2006
26 janv. 2006 à 19:58
C'est super, mais il y a moyen de l'arrêter avant la fin?
renkill Messages postés 1 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 18 mars 2005
18 mars 2005 à 23:04
wouhaou c assez koli et tout en AS c assez la classe !
gg ;)
arcane19 Messages postés 3 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 12 décembre 2004
12 déc. 2004 à 22:52
Très bien fait?
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
23 janv. 2004 à 19:53
Voila qui est fait normalement les sources sont compatibles flash mx.
Merci de m'avoir prévenu !
Tchao !
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
23 janv. 2004 à 18:01
Ben je voudrais bien voir cet effet aussi, moi ... et sans forcément installer MX2004 ......
De plus, ton code n'a apparement de fonctions spéciales pour cette version. Donc si tu veux que tout le monde puisse voir cette anim, pourrais-tu mettre une source MX stp ?
Merci d'avance !
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.