NUAGES ALÉATOIRES DEFILANTS

Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 13 mai 2006 à 10:03
sebastien247 Messages postés 27 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 13 mars 2011 - 25 sept. 2009 à 17:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37570-nuages-aleatoires-defilants

sebastien247 Messages postés 27 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 13 mars 2011
25 sept. 2009 à 17:48
Top30, comment faire pour inverser le mouvement des nuages de ton script ?
Au lieu de droite a gauche, les faire bouger de gauche a droite. Aussi, si tu peu de haut en bas, et de bas en haut.

g edité cette parti du code :

mc._y -= -mc._vitesse ;
if( mc._y < +mc._height ) mc._y += ( mc._height + nHauteur ) ;

Mais le problème, c que une fois que les clips son sorti de la scène, il ne revienne plus.

Merci par avance
sebastien247 Messages postés 27 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 13 mars 2011
25 sept. 2009 à 16:25
Vous pouvez créer votre nuage vous même que de dire que c'est moche. C'est vrai que c moche mais un Clip ca s'édite -_-"

Sinon pour l'optimisation de TOP30 c'est génial ! ^^ Merci
Tortue3000 Messages postés 9 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2007 à 23:55
c moche c moche, moi j'aime les pixels, je trouve ca trop bien !
jacquesdupontd Messages postés 3 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 5 août 2006
7 août 2006 à 01:25
euh c'est vrai que c'est vraiment pas très beau. Pkoi pas un ptit nuage vectoriel fait en 10 minutes ? Surtout que d'après ce que j'ai vu c'est toujours le même nuage , tu aurais pu essayer de tourner sur 2 ou 3. Ou en en créant un vectoriel tu aurais pu justement le modifier à ta guise et les rendre vraiment différents les uns des autres autrement que par leurs tailles et largeur.
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
16 mai 2006 à 07:53
Dans la lige :
var mc = mcClip.attachMovie( "Nuage", "nuage"+i+"_mc", 128+i ) ;
mc est une "référence" au clip créer....
Si tu efface "mc" tu n'efface pas le clip, tu efface la variable "mc".
Mais sit ut fais "mc._x = 50 ", tu changes bien le clip.
Ce genre de comportement se définit comme "référence" !

C'est bien plus pratique et rapide que d'éccrire "monClip["monString"] = " chaque fois !
nesgba Messages postés 5 Date d'inscription jeudi 8 septembre 2005 Statut Membre Dernière intervention 16 mai 2006
16 mai 2006 à 03:45
merci enormement pour ces precieux conseils, tu as meme entierement retappé le source ! Oo

// 1- Enlever le nuage de la scene et l'exporter.
ca prend pas + de ressources le fait d'exporter ?

// 2- Utiliser des variables non persistantes dans tes fonctions.
ah ok je ne pensai pas que l'on pouvai creer des variables persistante dans une fonction, une specificitée de flash surrement

// 3- Ne pas créer de variables "inutiles".
j'imagine que c'est pour preserver la ram, j'essayai de faire un truc clair en fait :)

// 4- Utliser un maximun de "référence".
je ne sais pas ce que c'est pour le moment mais je vais chercher, merci :)

// 5- Et si possible créer des classes.
j'ai toujours detesté les classes (c'est pour ca que je suis jamais passé au c++ d'ailleur, mais c'est peut etre un bon moyen de m'y mettre grace a flash) et l'appel a une classe est plus couteux en cpu que l'appel a une structure non ?

// 6- Tes fonction ont des renvois qui apparement ne servent pas.
oui je voulais faire un truc propre >< au cas ou quelqun veuille s'en servir

// 7- "updateAfterEvent" est une fonction UNIQUEMENT valide pour l'event "onMouseMove".
ok merci, je m'en souviendrai :)

c'est cool ce site ^^
ps: des que je peut je rajoute un fla avec ton code.
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
15 mai 2006 à 15:00
PS : Ton anim fait tres "Simpsons"
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
15 mai 2006 à 14:59
/*
Faut faire attention à ce quel'on dit.

Tu dis être un "fou" de l'optimisation mais ton code, à mon avis, est loin de l'être.
1- Enlever le nuage de la scene et l'exporter.
2- Utiliser des variables non persistantes dans tes fonctions.
3- Ne pas créer de variables "inutiles".
4- Utliser un maximun de "référence".
5- Et si possible créer des classes.
6- Tes fonction ont des renvois qui apparement ne servent pas.
7- "updateAfterEvent" est une fonction UNIQUEMENT valide pour l'event "onMouseMove".
*/

// ---

Stage.scaleMode = "noScale" ;
Stage.align = "TL" ;
_root._quality = "LOW" ;

// ---

function remplirClip ( mcClip, nLargeur, nHauteur, nNuages ) {
var a = [] ;
var i = -1 ;
while( ++i < nNuages ) {
var mc = mcClip.attachMovie( "Nuage", "nuage"+i+"_mc", 128+i ) ;
parametrerNuage( mc, nLargeur, nHauteur ) ;
a.push( mc ) ;
}
return a ;// Et comme ca tu as tous les nuages créés dans une array.
}

// ---

function parametrerNuage ( mcNuage, nLargeur, nHauteur ) {
mcNuage._z = random(100) ;
mcNuage._x = random( nLargeur ) ;
mcNuage._y = random( nHauteur ) ;
mcNuage._alpha = random(50)+25 ;
mcNuage._width = mcNuage._z+200 ;
mcNuage._height = mcNuage._z+random(30)+5 ;
mcNuage._vitesse = random(5)+1 ;
}

// ---

function scrollerNuages( aNuages, nLargeur ) {
for( var i in aNuages ) {
var mc = aNuages[i] ;
//
mc._x -= mc._vitesse ;
if( mc._x < -mc._width ) mc._x += ( mc._width + nLargeur ) ;
}
}

// ---

var mesNuages = remplirClip( this, 800, 600, 30 ) ;
interval = setInterval( this, "scrollerNuages", 30, mesNuages, 800 ) ;

4/10
cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
14 mai 2006 à 21:13
Je ne veux pas être médisant, mais en tout cas bravo pour tes lignes de code, malgrè tout, l'effet obtenu, n'est pas à la hauteur de tes efforts. Avec la méthode BitmapData.perlinNoise et la classe flash.filters.DisplacementMapFilter, on obtient de biens meilleurs résultats, en tout bien plus réalistes.
mais pour le code aussi 7/10.
Un png aurait été aussi avec un contour plus clean (mais bien sur plus lourd !)
nesgba Messages postés 5 Date d'inscription jeudi 8 septembre 2005 Statut Membre Dernière intervention 16 mai 2006
13 mai 2006 à 18:47
ok, merci de cet avis constructif, c'est vrai que ca fait pas super joli en l'etat, peut etre en modifiant quelques parametres et surtout le gif Nuage (j'en ai pas trouvé des jolis nuages avec un contour bien defini :) et je ne suis pas parvenu a un resultat assé bon avec photoshop)

nesgba
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
13 mai 2006 à 10:03
Question code il me semble que c'est pluto bon.
Mais question qualité graphique......... c'est pas beau a voir.
L'avantage du swf c'est tout de même d'avoir une belle qualité graphique avec un minimum de poid.
Donc autant en profiter ;)

Mais sinon c'est luto bien que le code soit facilement adaptable, enfin faut trouver l'utilité maintenant, ce n'est pas moi qui me servirai de cette source, a cause de la qualité.

Code => 8/10
Graphique => 5/10
Moyenne => 6.5/10 (j'arrondis au sup ;)) 7/10

Blacknight
Rejoignez-nous