Take the red pill...
Here's an improved version of my Matrix effect. It uses a far better text scrolling effect, way more like the real thing, and it's easier to see the 3D behind it. There's no user control. Of course you cannot be told what the matrix is, you have to see it for yourself...
hide mouse:autocam off:randomize timer()
set display mode 640,480,16:set camera range 1,7000:fog on:fog distance 7000:make matrix 1,1000,1000,5,5
create bitmap 1,512,512:cls rgb(1,1,1):for i=1 to 1000:ink rgb(255,255,255),0:dot int(rnd(512)),int(rnd(512))
ink rgb(100,100,100),0:dot int(rnd(512)),int(rnd(512)):next i:get image 100,0,0,512,512:get image 1,0,0,1,1:set current bitmap 0
delete bitmap 1:hide light 0:set ambient light 20:make light 1:set point light 1,0,0,0
make object sphere 100,5000:set object 100,1,1,0,1,0,0:texture object 100,100:make object triangle 999,0,0,0,0,0,0,0,0,0:make object box 1,100,150,50
make object sphere 2,150:make object cone 3,150:for i=1 to 3:position object i,int(rnd(500))+250,100,int(rnd(500))+250:make mesh from object i,i
add limb i,1,i:hide limb i,0:texture limb i,1,1:make memblock from mesh i,i:next i:set text size 12
dim chars(26,2):dim char$(26):for j=0 to 25:chars(j,0)=int(rnd(100))*-1:chars(j,1)=chars(j,0)-int(rnd(40))
char$(j)=chr$(int(rnd(60)+33)):for i=1 to 25:char$(j)=char$(j)+chr$(int(rnd(60)+33)):next i:next j:create bitmap 1,128,128:do
b#=wrapvalue(b#+mousemovex()):a#=wrapvalue(a#+0.2):set current bitmap 1
cls
for j=1 to 24:chars(j,0)=chars(j,0)+1:chars(j,1)=chars(j,1)+1:if chars(j,1)>50:chars(j,0)=int(rnd(26))*-1
chars(j,1)=chars(j,0)-int(rnd(40)):endif:for i=0 to 26:ink rgb(0,100-((chars(j,0)-i)*(100/40)),0),0:if i=chars(j,0)-1:ink rgb(0,255,0),0
endif:if ichars(j,1):text j*10,(i*10)-10,mid$(char$(j),i):endif:if int(rnd(800))=1:temp$=char$(j):char$(j)=chr$(int(rnd(60)+33)):for m=1 to 25
char$(j)=char$(j)+mid$(temp$,m):next m:endif:if int(rnd(200))=1:temp$=char$(j):char$(j)=left$(temp$,i):char$(j)=char$(j)+chr$(int(rnd(60)+33))
char$(j)=char$(j)+right$(temp$,len(temp$)-(i+1)):endif:next i:next j:delete image 1:get image 1,0,0,128,128:set current bitmap 0:for k=1 to 3
for i=0 to memblock dword(k,8)-1:position object 999,object position x(k)+memblock float(k,12+(i*32)),object position y(k)+memblock float(k,12+(i*32)+4),object position z(k)+memblock float(k,12+(i*32)+8):write memblock float k,12+(i*32)+24,object screen x(999)*0.0078125:write memblock float k,12+(i*32)+28,object screen y(999)*0.0078125:next i:delete mesh k
make mesh from memblock k,k:change mesh k,1,k:texture object k,1:next k:position camera 500+(sin(a#)*500),110+(sin(a#)*90),500+(cos(a#)*500):point camera 500,100,500
zrotate camera wrapvalue(sin(a#)*30):position light 1,500+(cos(a#*20)*400),150+(sin(a#)*50),500+(sin(a#*20)*400):loop
Let's hope those code tags work. 'cls' took up one entire line which I'm fairly annoyed about, so I had to drop 'sync'. There's no media required for your copy 'n' paste pleasure. I'm using the old rules, 5 commands per line, but what you must learn is that these rules are no different than the rules of a computer system. Some of them can be bent, others can be broken.
If you don't have DBPro, you might be able to download it at:
http://www.mikeyben.org:5432/darkb/newmatrixin20lines.zip
I'm not sure about the minimum requirements for this, it runs ok on my Athlon XP 2000+ with GeForce4 Ti4800.
Your comments, please.
Once I was but the learner,
now, I am the Master.