Download from ME
Download from Yandex
Download from Yandex
OptionExplicit
PrivateDeclareFunction PlaySound Lib "winmm.dll" Alias "PlaySoundW" (ByVal lpszName AsLong, ByVal hModule AsLong, ByVal dwFlags AsLong) AsLong
Private Const SND_ASYNC = &H1
Private Const pi = 3.14
PrivateFunction Draw(v AsLong, cc AsLong) AsBoolean
Dim dh AsSingle, c AsSingle, d AsSingle, x AsSingle, y AsSingle, w AsLong, i AsLong, dx AsSingle, dy AsSingle, _
gr AsSingle, r AsSingle, g AsSingle, b AsSingle, n AsString
Rnd v: cc = cc + 2
If cc <= 0 Then
ExitFunction
ElseIf cc <= 100 Then
If cc = 2 Then n = App.Path & "\1.wav": PlaySound StrPtr(n), 0, SND_ASYNC
dh = 100 / cc: x = Rnd * 0.75 + 0.125 + (cc * ((v And 2) - 1)) / 1000: y = Sin((cc - 2) / 200 * pi) * 0.75
w = 21 - cc * 0.2: d = 255 / w: c = 0
Do: c = 255 / w: DrawWidth = w: PSet (x, y), RGB(c, c, 0): w = w - 1: LoopWhile w
ElseIf cc < 300 Then
If cc = 102 Then n = App.Path & "\0.wav": PlaySound StrPtr(n), 0, SND_ASYNC
dh = (cc - 100) / 200: gr = (1 - Cos(dh * pi * 0.25)) * dh: dx = Rnd * 0.75 + 0.125 + ((v And 2) - 1) / 10
dy = 0.75 - gr: i = Rnd * 100 + 200: gr = 1 - 0.2 ^ (dh * 5): dh = 1 - dh
r = Rnd * 0.8 + 0.2: g = Rnd * 0.8 + 0.2: b = Rnd * 0.8 + 0.2
If cc < 150 Then
b = (1 - (cc - 100) / 50) * 3
For w = (cc - 100) * 2 To 1 Step -1
DrawWidth = w * 5: c = cc / w * b: PSet (dx, dy), RGB(c * r, c * g, c * b)
Next
EndIf
DoWhile i
c = Rnd * pi * 2: d = gr * (Rnd * 0.8 + 0.2) * 0.5: x = Cos(c) * d + dx: y = Sin(c) * d + dy
w = (dh * 6) * Abs(Sin((cc + i) / 10 * pi)) + 1: c = 0
Do: c = 512 / w * dh: DrawWidth = w: PSet (x, y), RGB(c * r, c * g, c * b): w = w - 1: LoopWhile w
i = i - 1
Loop
Else: Draw = True: cc = 0: v = v - Rnd * 100
EndIf
EndFunction
PrivateSub Form_Click()
Unload Me
EndSub
PrivateSub Form_Load()
Randomize
EndSub
PrivateSub Form_Resize()
Scale (0, 1)-(1, 0)
EndSub
PrivateSub tmrTimer_Timer()
Static a1 AsLong, a2 AsLong, c1 AsLong, c2 AsLong
If a1 = 0 Then a1 = -(Rnd * 100) - 1: a2 = a1 - 2: c2 = -150
Call Cls: Draw a1, c1: Draw a2, c2
EndSub