Code FireWorks

Retour à l'application SkyFire

Licence

Ce code est fourni sous une licence CC-By (cf. fin de page).

À propos du code

Le code est réparti en classes claires et nettes.
L'ensemble du fichier représente moins de 10ko !

Structure de l'application

Diagramme de SkyFire

Classe principale SkyFire

Dessine les feux, gère l'affichage global et l'artificier.

Code source : SkyFire.as
  • Langage : actionscript3
  • ΔT : 0.018s
  • Taille :4316 caractères
//Code original par Neamar. Réutilisation libre.
//neamar@neamar.fr
//Date : 2008

//Ligne de commande pour compiler :
//(après s'être placé dans le bon dossier, cf. http://neamar.fr/Res/Compiler_AS3/)
//
//bash mxmlc Sources/SkyFire/SkyFire.as -default-size 640 480 -compiler.strict

//Life begins when you can spend your spare time programming instead of watching television.
//...
//Pour le plein écran
//Pour le plein écran
//La classe de base, fort utile !
//Les évenements "de bases", classe dont dérive MouseEvent
//Interaction utilisateur//souris
//Un rectangle : x,y, width, height
//Un point tout ce qu'il y a de plus normal : défini par (x,y).
//Champ de texte. Classe assez vaste, utilisée uniquement pour l'affichage de texte ici. Peut être du texte au format HTML.
//Classe globale pour les filtres
//Filtre d'irridescence (éclairage, le plus utilisé)
//Flouter
//Effet de biseau, appliqué sur le "Plus de jeux".
//Quelques paramètres pour la compilation. Ils sont cependant redéfinis dans la ligne de commande, mais laissés ici pour des raisons sentimentales (sic)
//La matrice par défaut d'affichage : scaleX=scaleY = 1, pas de transformée
"../Trace.as"//                                 Fond.pixelSmoothing=true;//Lisser le bitmap.
//Economiser les ressources

                                //Flouter les anciens évenements
                                //function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
//ON "tronque" à Particule, même si c'est une classe qui dérive de Particule.
//function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
//                              Trace(System.totalMemory / 1000000 + "Mb");

Classes secondaires :

Artificier

L'artificier est la classe qui gère la cadence des tirs, et les feux qui sont tirés.

Code source : Artificier.as
  • Langage : actionscript3
  • ΔT : 0.012s
  • Taille :4627 caractères
//Un artificer virtuel qui gère tous les feux
//Nettoie les artifices inutilisés
//Les feux de type fontaine qui ne s'atténuent pas dans le temps, et retombent forcément. Couleur blanche
//Les feux "normaux" qui montent et s'éteignent à leur apogée. Couleur aléatoire.
//Les feux qui explosent en une gerbe de fontaines. Rouge à l'origine, couleur aléatoire après
//Des feux qui explosent en feux qui explosent : des bi-boomers en quelque sorte !
//Les feux "normaux" un peu améliorés : ils ont des étincelles à leurs bouts. Couleur aléatoire.
//Les feux qui explosent, relachant plein de petites étincelles.

Vecteur

Un vecteur mathématique. De façon interne, il s'agit juste d'un type Point renommé en Vecteur pour une meilleure lisibilité du code général.

Code source : Vecteur.as
  • Langage : actionscript3
  • ΔT : 0.001s
  • Taille :410 caractères
//Un vecteur, qui est en fait un déguisement de Point, mais cela clarifie le code.

Particules

L'ensemble des feux existants sont des classes qui héritent de Particule.

Code source : Particule.as
  • Langage : actionscript3
  • ΔT : 0.008s
  • Taille :3183 caractères
//Une particule de base
//Instancie un nouveau lien : prend en paramètre le conteneur et les extremités.
//On le calcule une fois pour toutes, et on le stocke dans un entier pour optimiser les calculs.
//                      this.graphics.beginFill(Couleur);
//                      this.graphics.drawCircle(0,0,Rayon);
//Met à jour la position de la particule.

                        //Ajouter un peu de gravité :
//Calcul de la somme des forces
//application du PFD : Somme des forces = masse * Acceleration
//Puis mise à jour de la vitesse
//Et enfin, de la position.
//Vidage de la liste des forces
//Ajoute une force en liste
//              public override function set filters(F:Array):void
//              {
//                      this.inner_filters=F;
//              }
//              public override function get filters():Array
//              {
//                      return this.inner_filters;
//              }
//
//              public override function set x(v:int):void
//              {
//                      this.inner_x=v;
//              }
//              public override function get x():int
//              {
//                      return this.inner_x;
//              }
//
//              public override function set y(v:int):void
//              {
//                      this.inner_y=v;
//              }
//              public override function get y():int
//              {
//                      return this.inner_y;
//              }
//GlowFilter(color:uint = 0xFF0000, alpha:Number = 1.0, blurX:Number = 6.0, blurY:Number = 6.0, strength:Number = 2, quality:int = 1, inner:Boolean = false, knockout:Boolean = false)

Toutes les particules

Chaque feu d'artifice dans sa diversité.

Code source : DistanceFader.as
  • Langage : actionscript3
  • ΔT : 0.003s
  • Taille :1050 caractères
//Une particule qui se dissout quand elle atteint une durée de vie maxi.
//Ne pas confondre avec SpeedFader, qui se dissout en dessous d'une certaine vitesse selon Y.
//les feux qui disparaissent progressivement
//Atténuer la couleur
Code source : SpeedFader.as
  • Langage : actionscript3
  • ΔT : 0.002s
  • Taille :867 caractères
//Une particule qui se dissout en dessous d'une certaine vitesse selon Y.
//Ne pas confondre avec DistanceFader, qui se dissout quand elle atteint une durée de vie maxi.
//les feux qui disparaissent progressivement
//Atténuer la couleur
Code source : Pchitter.as
  • Langage : actionscript3
  • ΔT : 0.003s
  • Taille :1408 caractères
//Une particule qui explose en plusieurs particules
//Les feux qui pétillent, extension de Fader, lui même extension de Particule
//Pchitt
//                              this.Pos=new Point(0,2000);
//                              this.transform.colorTransform=new ColorTransform(0,0,0,0,0,0,0,0);
                        }

                }
        }
}
Code source : Boomer.as
  • Langage : actionscript3
  • ΔT : 0.005s
  • Taille :1404 caractères
//Une particule qui explose en plusieurs particules
//Les feux qui explosent
//Y a-t-il explosion ?
//Boooom !
Code source : BiBoomer.as
  • Langage : actionscript3
  • ΔT : 0.006s
  • Taille :1412 caractères
//Une particule qui explose en plusieurs particules
//Les feux qui explosent
//Y a-t-il explosion ?
//Boooom !
//0xFFFFFF*Math.random();
Code source : BoomerPchitter.as
  • Langage : actionscript3
  • ΔT : 0.005s
  • Taille :1619 caractères
//Une particule qui explose en plusieurs particules
//Les feux qui explosent
//Y a-t-il explosion ?
//Boooom !
//On va rajouter beaucoup de particules, alors on nettoie d'abord.
Auteur
Neamar
Date
Aout 2008
But
Finir le jeu
Voir aussi
Compiler l'AS3
Retour
Retour à SkyFire
Menu
Index des ressources

Chargement du sommaire...