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 ! :)
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.