Je cherchais un moyen court de rendre un vol d'oiseaux crédible, j'ai donc écrit ce très très simple code qui sera peut-être utile aux débutants. J'espère que le rendu vous plaira. Je pense qu'il serait encore mieux en baissant la luminosité des oiseaux des second et troisième plans...
- Le principe d'animation des nuages est le même que celui des oiseaux, en plus simple.
- J'utilise this dans mon code car je fais initialement charger ce flash dans un autre.
- La source est en Flash 8 car j'utilise un filtre flou pour les nuages.
- La photo représente l'Opéra de Paris.
Source / Exemple :
// Vitesse maxi des oiseaux
this.birdsMaxSpeed=3;
// Nombre d'oiseaux
this.birdsNumber=30;
// Fonction d'affichage
this.placeBirds=function(){
for(i=1; i<=this.birdsNumber; i++){
// Attachement du clip bird
this.attachMovie("bird","bird"+i,i);
// Position x entre 0 et -700
this["bird"+i]._x=0-Math.round (Math.random ()*700);
// Position y entre 100 et 217
this["bird"+i]._y=100+Math.round (Math.random ()*117);
// Vitesse entre 1 et vitesse maxi
this["bird"+i].speed=1+Math.round (Math.random ()*(this.birdsMaxSpeed-1));
// On décale le mouvement d'1 oiseau sur 3 de 5 images vers l'avant
if (i%3==1){this["bird"+i].birdy.gotoAndPlay(5);}
// On décale le mouvement d'1 oiseau sur 3 de 10 images vers l'avant
if (i%3==2){this["bird"+i].birdy.gotoAndPlay(10);}
// Taille de l'oiseau selon sa vitesse (100% pour 3, 50% pour 2, 33% pour 1)
this["bird"+i]._xscale=100/(4-this["bird"+i].speed);
this["bird"+i]._yscale=100/(4-this["bird"+i].speed);
// On lance le mouvement de chaque oiseau
this["bird"+i].onEnterFrame=function(){
// Vitesse horizontale : constante selon la vitesse individuelle de départ
this._x+=this.speed;
// Déplacement horizontal aléatoire de plus ou moins 1 pixel, ou 0
this._y+=Math.round (Math.random ()*2)-1;
// A la sortie de l'écran, on renvoie l'oiseau deux écrans en arrière
if (this._x>710){this._x=-700;}
}
}
}
this.placeBirds();
Conclusion :
C'est tout, j'ai dit que c'était du basique...
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.