Matrix

Miscellaneous Forums/General Discussion/Matrix

 ;  Team Rebellion Matrix Screen Save.
;
;	Test Code. [ 23 March 2003 ]
;   Start Time [ 9:45          ] 
;	End   Time [ 9:58          ]
;
; Coders.
;  Yavin.
;Possible Screen Saver.

Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Cls

Global colos%
Dim Speeds(63)

Type Char
	Field x%,y%
	Field r,g,b
	Field char$
	Field speed
End Type

Global char.char = New char
Delete char

timer=CreateTimer(60)
set_speed()
create()

While Not KeyHit(1)
	render()
	update()
Wend

Function update()
	For char.char = Each char
		char\y=char\y+char\speed
		char\g=char\g-2
		If char\g=<0 Then char\g=Rnd(155,255)
		char\char=Rnd(65,90)
		If char\y>480 Then char\y=char\y-480
	Next
End Function


Function render()
Cls
	For char.char = Each char
		Color char\r,char\g,char\b
		Text char\x,char\y,Chr$(char\char)
	Next
Flip
End Function


Function set_speed()
For looper=0 To 63
	speeds(looper)=Rnd(5,10)
	colos=255
Next
End Function


Function create()
Local index
index=0
For loop=1 To 25
	colos=colos-3
	For looper=0 To 63
		char.char = New char
			char\x=looper*10
			char\y=loop*20
			char\r=0
			char\g=colos
			char\b=0
			char\char$=Chr$(looper+32)
			char\speed=speeds(looper)
	Next
Next
End Function