home *** CD-ROM | disk | FTP | other *** search
- rem Matrix Functionality
-
- gosub _setupcamera
- gosub _simplematrix : gosub _usingvectors : gosub _mouselook : gosub _deletematrix
- gosub _texturedmatrix : gosub _mouselook : gosub _deletematrix
- gosub _modifymatrix : gosub _mouselook
- gosub _movematrix : gosub _editmatrix : gosub _mouselook
- gosub _shiftmatrix : gosub _matrixdata
- gosub _deletematrix
-
- rem End of program
- end
-
- _setupcamera:
- position camera 0,300,0 : autocam off
- x#=30 : y#=0
- return
-
- _simplematrix:
- MatrixNumber=1
- make matrix MatrixNumber,1000,1000,25,25
- title$="Simple Matrix"
- return
-
- _usingvectors:
-
- VectorNumber=1 : MatrixNumber=1
- result==make vector3(VectorNumber)
- set vector3 VectorNumber, -500, 0, -500
- position matrix MatrixNumber, VectorNumber
- set vector3 to matrix position VectorNumber, MatrixNumber
- result=delete vector3(VectorNumber)
-
- return
-
- _texturedmatrix:
- ImageNumber=1
- MatrixNumber=1
- load image "ground.jpg",ImageNumber
- make matrix MatrixNumber,1000,1000,25,25
- prepare matrix texture MatrixNumber,ImageNumber,1,1
- title$="Textured Matrix"
- return
-
- _modifymatrix:
- ImageNumber=1
- load image "ground.jpg",ImageNumber
- make matrix MatrixNumber,1000,1000,25,25
- prepare matrix texture MatrixNumber,ImageNumber,1,1
- randomize matrix MatrixNumber,200 : update matrix MatrixNumber : sleep 1000
- ImageNumber=2
- load image "tile.bmp",ImageNumber
- prepare matrix texture MatrixNumber,ImageNumber,2,2 : sleep 1000
- set matrix wireframe on MatrixNumber : sleep 1000
- fill matrix MatrixNumber,100.0,3 : update matrix MatrixNumber : sleep 1000
- set matrix wireframe off MatrixNumber
- title$="Modified Matrix"
- return
-
- _movematrix:
- position matrix MatrixNumber,0,0,500
- TextureMode=1 : set matrix texture MatrixNumber, TextureMode, 0
- position matrix MatrixNumber,0,0,0
- return
-
- _editmatrix:
- Height#=0.0 : a#=0.0
- for x=0 to 25
- for z=0 to 25
-
- a#=a#+1 : if a#>359 then a#=a#-360.0
- Height#=cos(a#)*50
- set matrix height MatrixNumber, x, z, Height#
-
- if x<25 and z<25
- TileID=1+rnd(3)
- set matrix tile MatrixNumber, x, z, TileID
- endif
-
- nx#=0.0 : ny#=(sin(a#)+1.0)/2.0 : nz#=0.0
- set matrix normal MatrixNumber, x, z, nx#, ny#, nz#
-
- next z
- next x
- update matrix MatrixNumber
- title$="Edited Matrix"
- return
-
- _shiftmatrix:
- clear camera view rgb(0,0,128)
- for t=1 to 1000 step 3
- set cursor 0,0 : print "SHIFTING MATRIX"
- if t>=001 and t<250 then shift matrix up MatrixNumber
- if t>=250 and t<500 then shift matrix down MatrixNumber
- if t>=500 and t<750 then shift matrix left MatrixNumber
- if t>=750 and t<999 then shift matrix right MatrixNumber
- update matrix MatrixNumber
- sleep 3
- next t
- title$="Matrix Data"
- return
-
- _matrixdata:
-
- ghost matrix on MatrixNumber
- clear camera view rgb(0,0,128)
- while inkey$()<>"x"
- set cursor 0,0 : print "MATRIX DATA (Press X to Exit)" : print
- print "exist:";matrix exist(MatrixNumber)
- print "tilesexist:";matrix tiles exist(MatrixNumber)
- print "tilecount:";matrix tile count(MatrixNumber)
- print "wireframe:";matrix wireframe state(MatrixNumber)
- print "position x:";matrix position x(MatrixNumber)
- print "position y:";matrix position y(MatrixNumber)
- print "position z:";matrix position z(MatrixNumber)
- print "tile height at 12,12:";get matrix height(MatrixNumber, 12, 12)
- print "ground height at 0,0:";get ground height(MatrixNumber, 0, 0)
- x#=x#+mousemovey() : y#=y#+mousemovex() : rotate camera x#,y#,0
- endwhile
- ghost matrix off MatrixNumber
-
- return
-
- _deletematrix:
- MatrixNumber=1
- if matrix exist(MatrixNumber)=1 then delete matrix MatrixNumber
- return
-
- _mouselook:
-
- while mouseclick()<>1
- set cursor 0,0 : print title$+" (Left Mouse Button To Continue)"
- x#=x#+mousemovey() : y#=y#+mousemovex() : rotate camera x#,y#,0
- endwhile
- while mouseclick()=1 : endwhile
-
- return
-