bonjour,

C'est bientôt noël et je voudrai coder un effet de neige

En faite, la où je bloque, c'est sur le déplacement non linéaire d'objet (point ou bitmap par exemple)

Voilà un test simple avec 3 flocons : (image1, image2, image3 sont mes flocons)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
procedure TForm1.Timer1Timer(Sender: TObject); // ici 33 ms, la vitesse à laquelle les flocons descendent...
begin
image1.Top := image1.Top +1;
image2.Top := image2.Top +1;
image3.Top := image3.Top +1;
 
//ça c'est pour les replacer une fois descendu, enfin c'est pas trop le sujet :P 
if image1.top = 200 then
begin
image1.top := 1;
image1.left := (random(200));
end;
if image2.top = 200 then
begin
image2.top := 1;
image2.left := (random(200));
end;
if image3.top = 200 then
begin
image3.top := 1;
image3.left := (random(200));
end;
end;
Ce que je voudrai améliorer, c'est que mes flocon ne tombent pas verticalement,
mais un peu en biais, comme si il y avait du vent
Et je bloque dessus.... avez vous des idées, aglo différents, suggestion...?

Maintenant si mon effet comporte 200 flocons, je me suis dis qu'il serai bien de changer de méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
//cette fois j'ai 1 image de flocon en resource, que je vais réutiliser 200 fois =)
flocon := TBitMap.Create; // créer une variable flocon de type image
flocon.LoadFromResourceName(HInstance,'FLOCON'); 
 
procedure TForm1.Timer1Timer(Sender: TObject); // toute les 100 ms 1 flocon est dessiné
begin
Canvas.Draw(random(300)+1,random(20)+1,flocon);
Voilà ca marche, mes flocons sont créés toute les 100 ms entre X = 300 et Y = 20...
Maintenant comment faire pour faire bouger tout ce beau monde?
juste qu'ils descendent verticalement pour commencer, j'arrive pas à les faire bouger

Merci d'avance.

inspiration :
effet neige :
http://sidchip.ath.cx/~maktone/installers/CLS-2001_12_11.zip
effet delpacement non linéaire :
http://sidchip.ath.cx/~maktone/installers/CLS-2001_08_28.zip