De la belle neige !

Contenu du snippet

Voici un petit programme dans lequel on peut apercevoir de la neige tombé sur la form, elle ne s'accumule pas encore... Si quelqu'un sait comment faire pour qu'elle s'accumulle dans le bas , faites moi le savoir s'il vous plaît. Merci.

Premièrement, la feuille doit s'appeller Form1
Deuxièmement, il doit y avoir une picture box nommé picMenu en haut de la form, dans ce picturebox , metter un bouton nommez cmdQuitter

POUR QUE LES CERCLES(LES FLOCONS DE NEIGE) SOIENT REMPLIES, DANS LES PROPRIÉTÉS DE LA FORM, METTEZ FILLCOLOR EN BLANC ET FILLSTYLE EN SOLID

Source / Exemple :


Option Explicit
'Variables
Dim i
Dim i2
Dim NeigeX(200)
Dim NeigeY(200)
Dim Mouvement(200)
Dim Vitesse(200)

Private Sub cmdQuitter_Click()
  'Termine l'application
  End
End Sub

Private Sub Form_Load()
  'Démarrage et positionnement des premiers flocons de neige
  Randomize
  ScaleMode = 3
  For i = 1 To 200
    NeigeX(i) = Int(((Me.ScaleWidth) * Rnd) + 1)
  Next

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  'Affichage du menu
  If Y < 25 Then
    picMenu.Visible = True
  Else
    picMenu.Visible = False
  End If
End Sub

Private Sub Form_Resize()
  'Ajustement selon la grandeur de la Form
  picMenu.Width = Screen.Width
  For i = 1 To 200
    NeigeX(i) = Int(((Me.ScaleWidth) * Rnd) + 1)
  Next
End Sub

Private Sub Timer1_Timer()
  Do While Not (DoEvents = 0)
  Me.Cls
    For i = 1 To 200
      'Vitesse à laquelle la neige tombe
      Vitesse(i) = Int((50 * Rnd) + 1)
      'Déplacement de la neige de gauche à droite
      Mouvement(i) = Int((-5 * Rnd) + 5)
      
      
      'Patente kié dure a comprendre
      NeigeX(i) = NeigeX(i) + Mouvement(i)
      NeigeY(i) = NeigeY(i) + Vitesse(i)
      'Si la neige dépasse le fond
      If NeigeY(i) > Me.ScaleHeight Then
        NeigeY(i) = 0
            NeigeX(i) = Int(((Me.ScaleWidth) * Rnd) + 1)
      End If
      'Si la neige dépasse les côtés
      If NeigeX(i) > Me.ScaleWidth Then
        NeigeY(i) = 0
            NeigeX(i) = Int(((Me.ScaleWidth) * Rnd) + 1)
      End If
      Circle (NeigeX(i), NeigeY(i)), 2, RGB(255, 255, 255)
    Next i
  Me.Refresh
  Loop
End Sub

Conclusion :


Copyright 2001 gui2 Entertainment

A voir également

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.