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 |