% Matrix Program by Catalyst
%modified by Compwiz
const maxChar := 100
const maxStreak := 300
randomize
var w : int := Window.Open ("position:center;center,graphics:max;max")
Window.Set (w, "nocursor,noecho,nobuttonbar")
var x, y, c : array 1 .. maxStreak of int
var ch : array 1 .. maxStreak of string
for i : 1 .. maxStreak
y (i) := maxy
ch (i) := " "
c (i) := 1
end for
var z : int := 1
var font : int := Font.New ("courier:10:bold")
var yspd : int := 10
var rc : int := 0
proc fillback (c : int)
colorback (c)
cls
end fillback
proc Streak (num : int, highlight : boolean) %% Turns a white sparkle effet on/off
for n : 1 .. num
randint (x (n), 0, maxx)
randint (y (n), maxy, maxy * 2 + 140)
end for
loop
delay (15)
for n : 1 .. num
randint (z, 1, maxChar)
ch (n) += chr (z)
c (n) += 1
y (n) -= yspd
if y (n) < -140 then
randint (y (n), maxy, maxy * 2 + 140)
randint (x (n), 0, maxx)
ch (n) := " "
c (n) := 1
end if
if c (n) > 15 then
if highlight = true then
Font.Draw (ch (n) (c (n) - 1), x (n), y (n), font, 31)
Streak (300, false)
end if
Font.Draw (ch (n) (c (n) - 2), x (n), y (n) + 10, font, 10)
Font.Draw (ch (n) (c (n) - 3), x (n), y (n) + 20, font, 2)
Font.Draw (ch (n) (c (n) - 7), x (n), y (n) + 60, font, 120)
Font.Draw (ch (n) (c (n) - 11), x (n), y (n) + 100, font, 192)
Font.Draw (ch (n) (c (n) - 15), x (n), y (n) + 140, font, black)
end if
end for
end loop
end Streak
fillback (7)
Streak (300, true) |