Class moteur particules entierement parametrable simple a utiliser

Soyez le premier à donner votre avis sur cette source.

Vue 12 925 fois - Téléchargée 1 218 fois

Description

Voici une class, en faite deux, permettant de créer des émissions de particules dans une animation Flash. Elles ont été codés en AS2 et sont très simple d'utilisation.
Une seule ligne de code sufit pour rajouter une emission de particules.

Source / Exemple :


Comment créer une émission de particule dans votre animation ?

Mettez les fichiers Particule.as et MoteurParticule.as dans le même repertoire que votre animation Flash et chargez les dans Flash avec :

import Particules;
import MoteurParticules;

Puis créez une nouvelle instance de MoteurParticule.

Fonctions de la class MoteurParticule :

constructeur :
MoteurParticule(NV:MovieClip,NB:Number,couleur:Number,vitesseMax:Number,vitesseMin:Number,X:Number, Y:Number, angle:Number, intervalAngle:Number, tempsMax:Number, gravity:Boolean, friction:Boolean, starIteration:Number,diam:Number);

avec :
NV:MovieClip = clip ou vous voulez placer l'émission de particule (exemple : _root)
NB:Number = nombre de particules par segonde
couleur:Number = couleur des particules
vitesseMax:Number = vitesse maximum des particules
vitesseMin:Number = vitesse minimum des particules
X:Number = point d'origine X de l'émision des particules
Y:Number = point d'origine Y de l'émission des particules
angle:Number = angle de projestion des particules (sens aiguille d'une montre, en degres)
intervalAngle:Number = Differance etre angle minimum et maximum de projection de particules en °
tempsMax:Number = temps de vie des particules (en nb de frame)
gravity:Boolean = true pour prendre en compte la gravitée, sinon false
friction:Boolean = true pour prendre en comptre la friction de l'air, sinon false
starIteration:Number = differance d'angle entre chaque brin des particules (forme étoile)
diam:Number = diametre particules (en px)

autre fonctions :

Notez que le nom des parametres est assez explicite pour que vous comprenniez vous même de quoi il retourne d'autant plus qu'il nt été expliqués précédament :

setAngle(new_angle:Number, interval:Number):Void
setVitesse(vitesseMin:Number, vitesseMax:Number):Void
setPosition(X:Number,Y:Number):Void
setColor(couleur:Number):Void
setForces(gravity:Boolean, friction:Boolean):Void
setLifeTime(nbFrame:Number):Void
setBranchAngle(angle:Number):Void (=starIteration)
setRadius(radius):Void (radius=rayon des particules)
stopEmition():Void (arrete l'émission des particules)
startEmition():Void (relance l'émission des particules)
getInformations():Object(retourne toutes les infos des particules actuelles(voir + bas var infos))
EngineIsEmiting():Boolean (true si il y a emission, sinon false)
getParticulePerSecond():Number
getEngineClip():MovieClip (retourne clip du moteur qui contient la fonction update())
setParticulePerSecond(nb:Number):Void

La class Particule permet de créer une seule particule, la class MoteurParticule utilise cette class massivement afin de faire une émission de particule...

Conclusion :


Fournit avec les deux class plusieurs animations utilisant le moteur de particules :

utilisation_moteur.swf : utilisation de 4 émissions de particules juste pour tester les effets.
feu_chemine.swf : utilisation de 3 émission pour simuler un feu de camps
fontaine.swf : utilisation d'une émission pour simuler l'eau d'une fontaine
mini_jeu.swf : utilisation un peu plus poussé : on peut deplacer un personnage et lui faire bouger le bras, le point d'émission de particules est au bout du bras, et il emmet dans la direction du curseur, montrant un peu les possibilité d'un moteur de particules... on peut eteindre / ralumer l'émission avec les fleche haut/bas du clavier...
testeur.swf : animation qui permet de tester tous les parametres de la class facilement

j'ai mis niveau initié car :
niveau debutant pour utiliser la class
initié pour comprendre le code des class

Pour finir j'ai mis deux version de chaque Fla :
version CS3(Flash 9) et Flash 8

J'espere que cette source vous plaira ! :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

shiftedgirl
Messages postés
1
Date d'inscription
lundi 15 décembre 2008
Statut
Membre
Dernière intervention
25 décembre 2012
-
Bonjour,

Je ne sais pas si quelqu'un va me répondre 4 ans après mais j'essaye toujours (c'est pour le boulot et je me retrouve coincée)... J'ai récupéré la source et changé les paramètres qu'il me fallait, cependant étant une simple débutante j'aimerais juste changé l'élément particule (les petits points bleus) par une image (de bulle que j'ai chargé dans ma biblio Flash, à l'état de graphique). Est ce possible ? Et surtout comment ?
kiba91
Messages postés
7
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
salut stef,

ce que j'ai essayer dans mon anim, c'est un truc du genre:

monclip.swapDepth(-1000);

je ne savais pas que je pouvai utiliser

myEngine.getEngineClip().swapDepth(-1000);

donc si je te suis bien j'ecris cette phrase dans le code de mon fla et ça devrait passer les particules a une profondeur de -1000. j'essai ça tout a l'heure et j'te tien au courant. merci
stefbuet
Messages postés
576
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
12 mai 2009
-
Salut,

@ZanyMan:
as tu essayé un truc du genre :
var myEngine:MoteurParticule=new MoteurParticule();
myEngine.stopEmition();

Sinon tu peux toujours cacher le MC :
myEngine.getEngineClip()._visible=false;

------

@Fab (Kiba91)
Je croix que dans mes exemples en MP j'avais utilisé le nom de méthode getClip alors que je vois dans les infos sur la source que c'est getEngineClip.

As tu essayé un truc du genre :
myEngine.getEngineClip().swapDepth(getNextHighestDepth());
pour le mettre au premier plan ou
myEngine.getEngineClip().swapDepth(-1000);
pour le mettre dans le fond ?

@++

Stef.
kiba91
Messages postés
7
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
non,
à part que tu pourrais peut être cacher ton clip derrière un autre en attendant le moment ou tu le veux visible.
Mais pour ça il faudrait réussir à changer la profondeur des particules.

Et ça je me pose toujours la Question.
Si tu as une idée pour changer la profondeur des particules je suis preneur.

stefbuet ma dis qu'il n'avait pas le temps en ce moment de regarder ça
mais dés qu'il aurait un moment il changerait ce qu'il faut dans les .as.
Perso je n'ai pas son niveau et je ne comprend rien a ses .as, donc si ta une idée ce serait cool ^^

voila et ensuite si t'arrives à faire ça,
tu met un clip par dessus tes particules pour les cacher et a un moment donner, tu efface ce clip pour afficher tes particules.
Je sais que c'est de la bidouille mais bon ^^

sinon dans la fonction qui lance les particules, on ne peut pas jouer sur le délai? tout simplement comme avec mctwwen par exemple ou une simple fonction. si tu lance tes particule via une fonction que tu crées, au moment ou tu appels cette fonction donne lui un délai avant l'exécution.

En espérant t'avoir donner une piste.
++fab
zanyman
Messages postés
2
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
7 décembre 2008
-
Très bonne source. C'est exactement ce que je cherchais. Cependant, j'ai une petite question d'ordre pratique : j'ai mis le moteur à particules dans un movie clip et j'aimerais que celui-ci ne se lance pas automatiquement. J'ai tenté avec :

onLoad = function () {
moteur.stopEmition();
};

Mais ça ne fonctionne pas. Une petite idée ?
Merci d'avance.

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.