@ Insert Name Here
I posted the post when it wasn`t finished by accident...
How about this:
rem setup screen
sync on
sync rate 30
backdrop on
color backdrop 0
hide mouse
rem make 10 bullet objects
for t=1 to 10
make object sphere t,5
hide object t
dim bullet(t)
next t
rem make a matrix with texture
create bitmap 1,64,64
for x=0 to 64
for y=0 to 64
ink rgb(0,0,rnd(50)+200),0
dot x,y
next y
next x
get image 1,0,0,64,64
delete bitmap 1
make matrix 1,1000,1000,20,20
prepare matrix texture 1,1,2,2
fill matrix 1,0,1
randomize matrix 1,80
rem main loop
do
rem user help
center text 320,2,"Use Mouse to rotate, Keys to Move and left mouse click to shoot"
rem input for rotation
rx=wrapvalue(rx+mousemovey())
ry=wrapvalue(ry-mousemovex())
rem input for movements
if upkey()=1 then move camera 5
if downkey()=1 then move camera -5
rem get camera positions
x#=camera position x()
z#=camera position z()
y#=get ground height(1,x#,z#)+25
rem make sure camera is on matrix
if x#<0 then x#=0
if x#>1000 then x#=1000
if z#<0 then z#=0
if z#>1000 then z#=1000
rem position camera with updated positions
position camera x#,y#,z#
rotate camera rx,ry,rz
rem input to shoot
if mouseclick()=1 and shot=0
rem find a free bullet
free=-1
for t=1 to 10
if bullet(t)=0
bullet(t)=100
free=t
exit
endif
next t
rem prepare bullet
if free>0
position object free,x#,y#,z#
rotate object free,camera angle x(),camera angle y(),camera angle z()
endif
shot=1
endif
if mouseclick()=0 then shot=0
rem control bullet
for t=1 to 10
if bullet(t)>2
bullet(t)=bullet(t)-1
move object t,10
endif
if bullet(t)=2
bullet(t)=1
hide object t
endif
if bullet(t)=1
rem (explosion code goes here)
rem if explosion has finished, then reset bullet to 0
bullet(t)=0
endif
next t
rem refresh screen
sync
rem end of main loop
loop
Oooooops!!! I accidentally formated drive c.