'=[ Parameter ]=
'[RI] = Rechen-Intensiv
'(Wirkt sich in verbindung mit anderen [RI]s EXTREM!!! auf die Rechenzeit aus)
'Bildschirmbreite
Dim SWidth As Uinteger = 500
'Sparc Höhe (Wie weit sich von Sparc zu Sparc der ""Beam verdehnen darf)
Dim XHight As Uinteger = 30
'[RI] Sparc Schritte (Nach wie vielen Schritten ein Sparc ausbrechen soll
Dim Sparcs As Uinteger = 25
'[RI] Sparc Ausbrüche (Wie viele Sparcs ausbrechen sollen)
Dim SparcsBreak As Uinteger = 2
'[RI] Sparc Ausbruchs Höhe / Länge (Wei weit ein ausgebrochener Sparc laufen soll)
Dim SparcsBreakLen As Uinteger = 1000
'Sparc Ausbruchs Breite (Wie weit der Sparc seine richtung (Links/Rechts) ändern darf)
Dim SparcsBreakW As Uinteger = 5
'Korrektur der Sparc Ausbruchsrichtung (Korriegiert Laufbahn des Sparcs zum ausbruchspunkt zurück)
Dim SparcCorrection As Uinteger = 12
'Aktiviert den interaktiven Maus-Sensor
Dim Sensing As Ubyte = 0
'Farben
Dim RCol As Uinteger = 100
Dim GCol As Uinteger = 100
Dim BCol As Uinteger = 255
Dim C As Uinteger
Dim ZY As Uinteger
Dim LY As Uinteger = XHight / 2
Dim TX As Uinteger
Dim TY As Uinteger
Dim LTX As Uinteger
Dim LTY As Uinteger
Dim XCV1 As Uinteger
Dim XCV2 As Uinteger
Dim XCV3 As Uinteger
Dim YScreen As Uinteger = 100
Dim XOffSet As Uinteger = 10
Dim YOffSet As Uinteger = 100
Dim MouseX As Integer
Dim MouseY As Integer
Dim MouseXL As Integer
Dim MouseYL As Integer
Screenres SWidth, 400, 24
Randomize Timer
Do
If Sensing = 1 Then
If Getmouse(MouseX, MouseY) = 0 Then
XHight = Abs(MouseYL - MouseYL)
SparcsBreakLen = (Abs(MouseXL - MouseXL) + 1) * 300
MouseXL = MouseX
MouseYL = MouseY
End If
End If
Cls
For X As Uinteger = 1 To SWidth - XOffSet Step Sparcs
C = Int((Rnd * XHight) + 1) - (XHight / 2)
If ZY + C > YScreen Then
ZY -= C
Else: ZY += C
End If
For Y As Uinteger = 1 To Sparcs
ZY += Int((Rnd * 3) - 1)
Pset(XOffSet + X + Y, YOffSet + ZY), Rgb(RCol, GCol, BCol)
' For Z as UInteger = 1 to 10
' PSet(XOffSet + X + Y + Int((Rnd * Sparcs) - (Sparcs / 2)), YOffSet + ZY + Int((Rnd * 3) - 1)), RGB(100, 100, 255)
' Next
Next
LY = ZY
For Y As Uinteger = 1 To SparcsBreak
TY = LY
TX = X
For Z As Uinteger = 1 To SparcsBreakLen
TX += Int((Rnd * SparcsBreakW) - Fix(SparcsBreakW / 2))
TY += Int((Rnd * 3) - 1)
XCV1 = RCol - ((RCol / SparcsBreakLen) * Z)
XCV2 = GCol - ((GCol / SparcsBreakLen) * Z)
XCV3 = BCol - ((BCol / SparcsBreakLen) * Z)
Pset(XOffSet + TX, YOffSet + TY), Rgb(XCV1, XCV2, XCV3)
' Line(XOffSet + LTX, YOffSet + LTY)-(XOffSet + TX, YOffSet + TY), RGB(XCV, XCV, 255 - ((255 / SparcsBreakLen) * Z))
LTX = TX
LTY = TY
If TX < X Then
TX += Fix(Int(Rnd * SparcCorrection) / 10)
Else: TX -= Fix(Int(Rnd * SparcCorrection) / 10)
End If
Next
Next
Next
Sleep '1000, 1
Loop Until Inkey() = Chr(27)
Screen 0
End