www.pudn.com > Effect.zip > Form1.frm


VERSION 5.00 
Begin VB.Form Form1  
   AutoRedraw      =   -1  'True 
   BackColor       =   &H00000000& 
   BorderStyle     =   0  'None 
   Caption         =   "Form1" 
   ClientHeight    =   2790 
   ClientLeft      =   0 
   ClientTop       =   0 
   ClientWidth     =   3525 
   LinkTopic       =   "Form1" 
   ScaleHeight     =   186 
   ScaleMode       =   3  'Pixel 
   ScaleWidth      =   235 
   ShowInTaskbar   =   0   'False 
   StartUpPosition =   2  'CenterScreen 
   WindowState     =   2  'Maximized 
   Begin VB.Timer Timer1  
      Interval        =   1000 
      Left            =   225 
      Top             =   225 
   End 
End 
Attribute VB_Name = "Form1" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
Private Declare Function GetTickCount Lib "Kernel32" () As Long 
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long 
Private Type Lightning 
    PosX As Integer 
    PosY As Integer 
End Type 
 
Private Sub Form_Load() 
    MsgBox "Click On Screen to End" 
End Sub 
 
Private Sub Form_Click() 
    Unload Me 
    End 
End Sub 
 
Private Sub Timer1_Timer() 
    Dim RndInt As Integer 
 
    Randomize 
     
    Make_Lightning 
     
    RndInt = Int(Rnd * 10) + 1 
     
    Timer1.Interval = RndInt * 250 
End Sub 
 
Private Sub Make_Lightning() 
    Dim i As Integer 
    Dim A As Integer 
    Dim B As Integer 
    Dim C As Integer 
    Dim D As Integer 
    Dim E As Integer 
    Dim PosL As Single 
    Dim GoLeft As Boolean 
    Dim B1 As Boolean 
    Dim B2 As Boolean 
    Dim B3 As Boolean 
     
    B1 = False 
    B2 = False 
    B3 = False 
    If Int(Rnd * 2) + 1 = 1 Then B1 = True 
    If Int(Rnd * 2) + 1 = 1 Then B2 = True 
    If Int(Rnd * 2) + 1 = 1 Then B3 = True 
     
    i = Form1.Height / 15 
    ReDim Lightning(i) As Lightning 
     
    PosL = Int(Rnd * (Form1.Width / 2)) + (Form1.Width / 5) 
     
    B = 0 
     
    For A = 1 To i 
     
        If B = 0 Then 
            If Int(Rnd * 2) + 1 = 1 Then 
                GoLeft = True 
            Else 
                GoLeft = False 
            End If 
            B = Int(Rnd * 10) + 3 
        Else 
            B = B - 1 
        End If 
         
        If GoLeft = True Then 
            PosL = PosL - 15 
        Else 
            PosL = PosL + 15 
        End If 
         
        Select Case Int(Rnd * 10) + 1 
            Case 1 
                PosL = PosL - 10 
            Case 2 
                PosL = PosL + 10 
            Case 3 
                PosL = PosL - 15 
            Case 4 
                PosL = PosL + 15 
            Case 5 
                PosL = PosL - 20 
            Case 6 
                PosL = PosL + 20 
        End Select 
     
        Lightning(A).PosX = PosL / 15 
        Lightning(A).PosY = A 
    Next A 
     
    C = 0 
    D = 0 
    E = 0 
     
    For A = 1 To i 
        SetPixel Form1.hdc, Lightning(A).PosX, Lightning(A).PosY, RGB(255, 255, 255) 
        SetPixel Form1.hdc, Lightning(A).PosX + 1, Lightning(A).PosY, RGB(255, 255, 200) 
        SetPixel Form1.hdc, Lightning(A).PosX - 1, Lightning(A).PosY, RGB(255, 255, 200) 
        SetPixel Form1.hdc, Lightning(A).PosX + 2, Lightning(A).PosY, RGB(255, 255, 100) 
        SetPixel Form1.hdc, Lightning(A).PosX - 2, Lightning(A).PosY, RGB(255, 255, 100) 
        SetPixel Form1.hdc, Lightning(A).PosX + 3, Lightning(A).PosY, RGB(255, 255, 0) 
        SetPixel Form1.hdc, Lightning(A).PosX - 3, Lightning(A).PosY, RGB(255, 255, 0) 
        If A > Int(i * 0.25) Then 
            If B1 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + C, Lightning(A).PosY, RGB(255, 255, 255) 
                SetPixel Form1.hdc, Lightning(A).PosX + C + 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + C - 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + C + 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + C - 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + C + 3, Lightning(A).PosY, RGB(255, 255, 0) 
                SetPixel Form1.hdc, Lightning(A).PosX + C - 3, Lightning(A).PosY, RGB(255, 255, 0) 
                C = C + 1 
            End If 
        End If 
        If A > Int(i * 0.5) Then 
            If B2 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + D, Lightning(A).PosY, RGB(255, 255, 255) 
                SetPixel Form1.hdc, Lightning(A).PosX + D + 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + D - 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + D + 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + D - 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + D + 3, Lightning(A).PosY, RGB(255, 255, 0) 
                SetPixel Form1.hdc, Lightning(A).PosX + D - 3, Lightning(A).PosY, RGB(255, 255, 0) 
                D = D - 1 
            End If 
        End If 
        If A > Int(i * 0.75) Then 
            If B3 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + E, Lightning(A).PosY, RGB(255, 255, 255) 
                SetPixel Form1.hdc, Lightning(A).PosX + E + 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + E - 1, Lightning(A).PosY, RGB(255, 255, 200) 
                SetPixel Form1.hdc, Lightning(A).PosX + E + 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + E - 2, Lightning(A).PosY, RGB(255, 255, 100) 
                SetPixel Form1.hdc, Lightning(A).PosX + E + 3, Lightning(A).PosY, RGB(255, 255, 0) 
                SetPixel Form1.hdc, Lightning(A).PosX + E - 3, Lightning(A).PosY, RGB(255, 255, 0) 
                E = E + 1 
            End If 
        End If 
    Next A 
 
    Form1.Refresh 
    'DoEvents 
    Select Case Int(Rnd * 3) + 1 
        Case 1 
            Delay 25 
        Case 2 
            Delay 50 
        Case 3 
            Delay 75 
    End Select 
    Form1.Cls 
     
    C = 0 
    D = 0 
    E = 0 
     
    For A = 1 To i 
        SetPixel Form1.hdc, Lightning(A).PosX, Lightning(A).PosY, RGB(255, 255, 255) 
        If A > Int(i * 0.25) Then 
            If B1 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + C, Lightning(A).PosY, RGB(255, 255, 255) 
                C = C + 1 
            End If 
        End If 
        If A > Int(i * 0.5) Then 
            If B2 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + D, Lightning(A).PosY, RGB(255, 255, 255) 
                D = D - 1 
            End If 
        End If 
        If A > Int(i * 0.75) Then 
            If B3 = True Then 
                SetPixel Form1.hdc, Lightning(A).PosX + E, Lightning(A).PosY, RGB(255, 255, 255) 
                E = E + 1 
            End If 
        End If 
    Next A 
     
    Form1.Refresh 
    'DoEvents 
    Select Case Int(Rnd * 3) + 1 
        Case 1 
            Delay 5 
        Case 2 
            Delay 10 
        Case 3 
            Delay 15 
    End Select 
    Form1.Cls 
End Sub 
 
Private Sub Delay(ByVal Delay As Long) 
    Dim Start As Long 
    Dim Elapsed As Long 
 
    Start = GetTickCount 
 
    Do 
        DoEvents 
        Elapsed = GetTickCount 
    Loop Until (Elapsed - Start) >= Delay 
End Sub