It is useful for easily doing this sorta thing...
you know, when you're in the mood for doing fishes in space type things...
set display mode 1920,1080,32
sync on :sync rate 60
autocam off
num=50
dim aaa(99)
dim bbb(99)
dim zzz(99)
dim ttt(99)
dim bitsx#(num)
dim bitsy#(num)
dim bitsa#(num)
dim bitsb#(num)
dim fishx(num)
dim fishy(num)
dim tim(num)
dim tiw(num)
dim tiq(num)
dim tim2(num)
dim tim3(num)
dim fg(num)
for f=0 to num
bitsx#(f)=10+rnd(1900)
bitsy#(f)=10+rnd(1060)
a=1+rnd(7)
bitsa#(f)=a/100
a=1+rnd(7)
bitsb#(f)=a/100
tim(f)=1+rnd(22)
tiw(f)=1+rnd(359)
tiq(f)=1+rnd(359)
fishy(f)=15+rnd(1060)
fishx(f)=15+rnd(1900)
tim2(f)=rnd(180)
tim3(f)=rnd(180)
ttt(f)=170+rnd(10)
aaa(f)=-500+rnd(1000)
bbb(f)=-400+rnd(800)
zzz(f)=100+rnd(200)
next f
get image 1,0,0,1920,1080,1
make memblock from image 1,1
a5=get memblock size(1)
ink rgb(250,40,20)
box 0,0,2,2:get image 3,0,0,1,1,1
ink rgb(0,200,0)
box 0,0,2,2:get image 4,0,0,1,1,1
ink rgb(10,10,255)
box 0,0,2,2:get image 5,0,0,1,1,1
ink rgb(150,70,255)
box 0,0,2,2:get image 6,0,0,1,1,1
ink rgb(0,110,140)
box 0,0,2,2:get image 7,0,0,1,1,1
ink rgb(255,229,0)
box 0,0,2,2:get image 8,0,0,1,1,1
a=3
for f=1 to num*10
make object plain f,1,1,2
if f<num*8
position object f,-500+rnd(1000),-400+rnd(800),44+rnd(700)
else
position object f,-800+rnd(1600),-540+rnd(1000),44+rnd(500)
endif
texture object f,a:inc a:if a>8 then a=3
next f
szw=1280
szh=800
bk=f
make object plain bk,szw,szh,1
set object transparency bk,5
cls
`make background stars
for f=0 to 2222
a=5+rnd(1790)
b=5+rnd(880)
paste image 3+rnd(5),a,b
next f
get image 10,0,0,szw,szh,1
texture object bk,10
fade object bk,190
position object bk,25,-50,560
set current bitmap 0
set camera range 1,1000
create bitmap 3,18,18
for f=0 to 7
r=31+f*32
ink rgb(r,r,r)
box f,7,f+2,8
box 13-f,7,15-f,8
box 7,f,8,f+2
box 7,13-f,8,15-f
next f
blur bitmap 3,2
get image 12,0,0,17,17,1
delete bitmap 3
for f=0 to 5
make object plain bk+1+f,5,5,1
set object transparency bk+1+f,5
texture object bk+1+f,12
fade object bk+1+f,222
next f
color backdrop 0
fd#=0.97
p=1
pnt=0
backdrop off
`````````````````````````````````
do
position camera 0,0,-100
point camera 0,0,0
`paste image 12,960,560
`cls
`fade bitmap 0,70
dr=dr+127
if dr>255
dr=dr-256
gosub fader
endif
ink rgb(60,90,60)
for f=0 to num
dec tim(f)
if tim(f)<50
d=tiw(f)
x1#=sin(tiq(f))
y1#=cos(d)
inc tiw(f)
inc tiq(f)
if tiw(f)>359 then tiw(f)=tiw(f)-360
bitsx#(f)=bitsx#(f)+bitsa#(f) +x1#
bitsy#(f)=bitsy#(f)+bitsb#(f) +y1#
``````````````````````````````
if tim(f)<0
b#=0
a=1+rnd(7)
if rnd(100)>49 then b#=0.5
bitsa#(f)=b#+(a/10)
b#=0
a=1+rnd(7)
if rnd(100)>49 then b#=rnd(1):bitsa#(f)=a#+(a/10)
if rnd(100)>49 then a#=rnd(1):bitsb#(f)=a#+(a/10)
if rnd(1)>0 then bitsa#(f)=-bitsa#(f)
if rnd(1)>0 then bitsb#(f)=-bitsb#(f)
if rnd(100)>90
if rnd(100)>50 then bitsa#(f)=-abs(bitsa#(f))
if rnd(100)>50 then bitsb#(f)=-bitsb#(f)
endif
tim(f)=20+rnd(99)
endif
endif
if bitsy#(f)>1078 then bitsy#(f)=1078:a#=abs(bitsb#(f)):bitsb#(f)=-a#
if bitsy#(f)<8 then bitsy#(f)=8:a#=abs(bitsb#(f)):bitsb#(f)=a#
if bitsx#(f)>1918 then bitsx#(f)=1918:a#=abs(bitsa#(f)):bitsa#(f)=-a#
if bitsx#(f)<5 then bitsx#(f)=5:a#=abs(bitsa#(f)):bitsa#(f)=a#
box bitsx#(f),bitsy#(f),bitsx#(f)+2,bitsy#(f)+2
next f
gosub fishes
gosub stars
gosub twinkle
`gosub twinkle
`ink 0
`box 40,10,340,22
`ink rgb(222,22,22)
`text 40,10,str$(pnt)+" "+str$(ttt(0))+" " +str$(ttt(1))+" "+str$(ttt(2))+" "+str$(ttt(3))+" " +str$(ttt(4))+" "+str$(ss)+" "
inc delay
ttt2:
if inkey$()=" " then goto ttt2
sync
loop
````````````````````````````````````````
fader:
get image 1,0,0,1920,1080,1
make memblock from image 1,1
for f=12 to a5-1 step 8
write memblock byte 1,f,memblock byte(1,f)*fd#
write memblock byte 1,f+1,memblock byte(1,f+1)*fd#
write memblock byte 1,f+2,memblock byte(1,f+2)*fd#
write memblock byte 1,f+4,memblock byte(1,f)*fd#
write memblock byte 1,f+5,memblock byte(1,f+1)*fd#
write memblock byte 1,f+6,memblock byte(1,f+2)*fd#
next f
make image from memblock 2,1
paste image 2,0,0
return
````````````````````````````````````
fishes:
ink rgb(110,110,130)
p=-p
for f=0 to num
if p>0 then dec tim2(f)
if tim2(f)<-20-rnd(40)
fg(f)=0
tim2(f)=177+rnd(3)
`tim3(f)=0
endif
y#=10*sin(tim3(f))
if tim2(f)<0 then x#=0.0:goto gop
if tim3(f)<10 and rnd(100)>90 then fg(f)=rnd(1)
x#=290*sin(tim2(f))
dec tim3(f)
if tim3(f)<-179 then tim3(f)=180
if fg(f)>0 then fishy(f)=fishy(f)+0.5*sin(tim3(f))
gop:
box x#+fishx(f),y#+fishy(f),x#+fishx(f)+5,y#+fishy(f)+2
next f
return
````````````````````````````````````
stars:
for f=1 to num*8
x#=object position x(f)
y#=object position y(f)
z#=object position z(f)
dec z#:if z#<21 then z#=300+rnd(300)
position object f,x#,y#,z#
next f
for f=num*8 to num*10
if rnd(100)>80 then show object f
if rnd(300)>270 then hide object f
next f
return
````````````````````````````````````
twinkle:
if ttt(pnt)>0 then dec ttt(pnt),10
if ttt(pnt)<1
dec ttt(pnt),2
if ttt(pnt)<-30
aaa(pnt)=-440+rnd(880):bbb(pnt)=-400+rnd(800)
ttt(pnt)=180 `timer
zzz(pnt)=100+rnd(210)
endif
endif
position object bk+1+pnt,aaa(pnt),bbb(pnt),zzz(pnt)+100
s=ttt(pnt)
ss=150+150*sin(ttt(pnt))
scale object bk+1+pnt,ss,ss,100
zrotate object bk+1+pnt,s
hoff:
inc pnt:if pnt>5 then pnt=0
return