BoncScrSaver




Dim x1 As Single, x2 As Single
Dim y1 As Single, y2 As Single
Dim xs1 As Integer, xs2 As Integer
Dim ys1 As Integer, ys2 As Integer
Dim xb1 As Single, xb2 As Single
Dim yb1 As Single, yb2 As Single
Dim xbs1 As Integer, xbs2 As Integer
Dim ybs1 As Integer, ybs2 As Integer
Dim x3 As Single, x4 As Single
Dim y3 As Single, y4 As Single
Dim xs3 As Integer, xs4 As Integer
Dim ys3 As Integer, ys4 As Integer
Dim xb3 As Single, xb4 As Single
Dim yb3 As Single, yb4 As Single
Dim xbs3 As Integer, xbs4 As Integer
Dim ybs3 As Integer, ybs4 As Integer
Dim cl As Long, bl As Long, flag As Boolean
Dim sx As Integer, sy As Integer
Dim it As Boolean

Private Sub Form_KeyPress(KeyAscii As Integer)
End
End Sub

Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Static fx As Single: Static fy As Single
If it = False Then fx = X: fy = Y: it = True
If fx <> X Or fy <> Y Or Button <> 0 Then End
End Sub

Private Sub Form_Load()
Randomize: flag = False
it = False
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
sx = F1.ScaleWidth
sy = F1.ScaleHeight
x1 = Int(Rnd * (sx - 10 + 1)): xb1 = x1
x2 = Int(Rnd * (sx - 10 + 1)): xb2 = x2
y1 = Int(Rnd * (sy - 10 + 1)): yb1 = y1
y2 = Int(Rnd * (sy - 10 + 1)): yb2 = y2
xs1 = Int(Rnd * (30 + 1)) + 30: xbs1 = xs1
xs2 = Int(Rnd * (30 + 1)) + 30: xbs2 = xs2
ys1 = Int(Rnd * (30 + 1)) + 30: ybs1 = ys1
ys2 = Int(Rnd * (30 + 1)) + 30: ybs2 = ys2

x3 = Int(Rnd * (sx - 10 + 1)): xb3 = x3
x4 = Int(Rnd * (sx - 10 + 1)): xb4 = x4
y3 = Int(Rnd * (sy - 10 + 1)): yb3 = y3
y4 = Int(Rnd * (sy - 10 + 1)): yb4 = y4
xs3 = Int(Rnd * (30 + 1)) + 30: xbs3 = xs3
xs4 = Int(Rnd * (30 + 1)) + 30: xbs4 = xs4
ys3 = Int(Rnd * (30 + 1)) + 30: ybs3 = ys3
ys4 = Int(Rnd * (30 + 1)) + 30: ybs4 = ys4
crs = 0: Cls

For i = 0 To 50
crs = crs + 1
If crs > 50 Then
cl = Int(Rnd * 16777215)
bl = Int(Rnd * 16777215)
crs = 0
End If
Line (x1, y1)-(x2, y2), cl
If x1 + xs1 > sx Or x1 + xs1 < 0 Then xs1 = -xs1
If x2 + xs2 > sx Or x2 + xs2 < 0 Then xs2 = -xs2
If y1 + ys1 > sy Or y1 + ys1 < 0 Then ys1 = -ys1
If y2 + ys2 > sy Or y2 + ys2 < 0 Then ys2 = -ys2
x1 = x1 + xs1: x2 = x2 + xs2
y1 = y1 + ys1: y2 = y2 + ys2
Line (x3, y3)-(x4, y4), bl
If x3 + xs3 > sx Or x3 + xs3 < 0 Then xs3 = -xs3
If x4 + xs4 > sx Or x4 + xs4 < 0 Then xs4 = -xs4
If y3 + ys3 > sy Or y3 + ys3 < 0 Then ys3 = -ys3
If y4 + ys4 > sy Or y4 + ys4 < 0 Then ys4 = -ys4
x3 = x3 + xs3: x4 = x4 + xs4
y3 = y3 + ys3: y4 = y4 + ys4
Next i
doit
End Sub

Public Sub doit()
Do Until flag = True
crs = crs + 1
If crs > 50 Then ' change random colors
cl = Int(Rnd * 16777215)
bl = Int(Rnd * 16777215)
crs = 0
End If
'a null loop to slow it down ajust for your system as needed

a = 0: Do: a = a + 1: Loop Until a >= 5000
Line (x1, y1)-(x2, y2), cl
If x1 + xs1 > sx Or x1 + xs1 < 0 Then xs1 = -xs1
If x2 + xs2 > sx Or x2 + xs2 < 0 Then xs2 = -xs2
If y1 + ys1 > sy Or y1 + ys1 < 0 Then ys1 = -ys1
If y2 + ys2 > sy Or y2 + ys2 < 0 Then ys2 = -ys2
x1 = x1 + xs1: x2 = x2 + xs2
y1 = y1 + ys1: y2 = y2 + ys2
Line (xb1, yb1)-(xb2, yb2), 0
If xb1 + xbs1 > sx Or xb1 + xbs1 < 0 Then xbs1 = -xbs1
If xb2 + xbs2 > sx Or xb2 + xbs2 < 0 Then xbs2 = -xbs2
If yb1 + ybs1 > sy Or yb1 + ybs1 < 0 Then ybs1 = -ybs1
If yb2 + ybs2 > sy Or yb2 + ybs2 < 0 Then ybs2 = -ybs2
xb1 = xb1 + xbs1: xb2 = xb2 + xbs2
yb1 = yb1 + ybs1: yb2 = yb2 + ybs2
Line (x3, y3)-(x4, y4), bl
If x3 + xs3 > sx Or x3 + xs3 < 0 Then xs3 = -xs3
If x4 + xs4 > sx Or x4 + xs4 < 0 Then xs4 = -xs4
If y3 + ys3 > sy Or y3 + ys3 < 0 Then ys3 = -ys3
If y4 + ys4 > sy Or y4 + ys4 < 0 Then ys4 = -ys4
x3 = x3 + xs3: x4 = x4 + xs4
y3 = y3 + ys3: y4 = y4 + ys4
Line (xb3, yb3)-(xb4, yb4), 0
If xb3 + xbs3 > sx Or xb3 + xbs3 < 0 Then xbs3 = -xbs3
If xb4 + xbs4 > sx Or xb4 + xbs4 < 0 Then xbs4 = -xbs4
If yb3 + ybs3 > sy Or yb3 + ybs3 < 0 Then ybs3 = -ybs3
If yb4 + ybs4 > sy Or yb4 + ybs4 < 0 Then ybs4 = -ybs4
xb3 = xb3 + xbs3: xb4 = xb4 + xbs4
yb3 = yb3 + ybs3: yb4 = yb4 + ybs4
DoEvents
Loop
End Sub










( boncscrsaver.html )- by Paolo Puglisi - Modifica del 17/12/2023