Mega Code Archive

 
Categories / VB.Net Tutorial / 2D Graphics
 

Snow Animation

'Visual Basic.Net JingCai Programming 100 Examples 'Author: Yong Zhang 'Publisher: Water Publisher China 'ISBN: 750841156 Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class Snow    public Shared Sub Main         Application.Run(New Form1)    End Sub End class Public Class Form1     Inherits System.Windows.Forms.Form     Public Sub New()         MyBase.New()         InitializeComponent()     End Sub     Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)         If disposing Then             If Not (components Is Nothing) Then                 components.Dispose()             End If         End If         MyBase.Dispose(disposing)     End Sub     Private components As System.ComponentModel.IContainer     Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox     Friend WithEvents Timer1 As System.Windows.Forms.Timer     <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()         Me.components = New System.ComponentModel.Container         Me.PictureBox1 = New System.Windows.Forms.PictureBox         Me.Timer1 = New System.Windows.Forms.Timer(Me.components)         Me.SuspendLayout()         '         'PictureBox1         '         Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Fill         Me.PictureBox1.Location = New System.Drawing.Point(0, 0)         Me.PictureBox1.Name = "PictureBox1"         Me.PictureBox1.Size = New System.Drawing.Size(292, 266)         Me.PictureBox1.TabIndex = 0         Me.PictureBox1.TabStop = False         '         'Timer1         '         Me.Timer1.Enabled = True         Me.Timer1.Interval = 10         '         'Form1         '         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)         Me.ClientSize = New System.Drawing.Size(292, 266)         Me.Controls.Add(Me.PictureBox1)         Me.WindowState = System.Windows.Forms.FormWindowState.Maximized         Me.ResumeLayout(False)     End Sub     Dim number, x(), y(), v(), s() As Integer     Dim t As Random = New Random     Dim g As System.Drawing.Graphics     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         PictureBox1.Location = Me.Location         PictureBox1.Size = Me.Size         PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage         snow()     End Sub     Private Sub snow()         number = 2000         ReDim x(number - 1)         ReDim y(number - 1)         ReDim v(number - 1)         ReDim s(number - 1)         Dim i As Integer         For i = 0 To number - 1             Insnow(i)         Next     End Sub     Private Sub Insnow(ByVal i As Integer)         x(i) = t.Next(0, Me.Width - 1)         y(i) = t.Next(0, Me.Height * 5 / 7)         v(i) = t.Next(5, 20)         s(i) = (t.Next(1, 3) * 100 + t.Next(50, 200)) / 100     End Sub     Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint         g = PictureBox1.CreateGraphics         Dim i As Integer         For i = 0 To number - 1             g.FillEllipse(Brushes.White, x(i), y(i), s(i), s(i))         Next     End Sub     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick         Dim i As Integer         For i = 0 To number - 1             y(i) = y(i) + v(i)             If y(i) >= Me.Height Then                 Insnow(i)             End If         Next         PictureBox1.Invalidate()     End Sub End Class