set display mode 1920,1080,32
sync on :sync rate 60
autocam off
numb=400
dim tims(numb)
dim starx#(numb)
dim stary(numb)
dim starz(numb)
dim stardec(numb)
dim di(numb)
dim yrot#(numb)
cls 0:a=0
for f=0 to 255 step 63
ink rgb(f,f,f)
dot a,4 : dot 4,a
dot 8-a,4:dot 4,8-a
inc a
next f
get image 200,0,0,7,7,1
for f=0 to 500
r=100+rnd(140)
ink rgb(r-20,r,r+15)
x=rnd(1919)
y=rnd(1079)
box x,y,x+2,y+2
next f
for f=700 to 1100
make object plain f,8,8
set object transparency f,5
texture object f,200
tims(f-700)=rnd(180)
starz(f-700)=1600
stardec(f-700)=1+rnd(2)
di(f-700)=1:if rnd(1) then di(f-700)=-1
a$="0."+str$(1+rnd(999))
yrot#(f-700)=val(a$)
fade object f,1444
hide object f
next f
num=19
a=64
dim tranx(66)
dim trany(66)
dim tranz(66)
cls 0
get image 1,0,0,255,255,1
xs=255
for y=0 to 256 step 16
for x=0 to 256 step 16
ink rgb(20,xs,20)
box x,y,x+3,y+3
next x
next y
get image 2,0,0,255,255,1
cls 0
make object plain 1,200,100
set object transparency 1,5
texture object 1,1
rotate object 1,0,0,0
fix object pivot 1
make object sphere 2,20,32,32
make mesh from object 1,2
hide limb 1,0
a5=1
for y=0 to 5
for x=0 to 10
add limb 1,a5,1
x1=x-5
y1=y-3
offset limb 1,a5,x1*19,-y1*19,rnd(20)
fix object pivot 1
texture limb 1,a5,2
show limb 1,a5
rotate limb 1,a5,rnd(360),rnd(360),rnd(360)
t=22+(y*5)
tranx(a5)=t*sin(x1*32.7)
trany(a5)=y*20
tranz(a5)=t*cos(x1*32.7)
inc a5
next x
next y
fade object 1,1444
cls 0
ink rgb(0,222,0)
for y=12 to 240 step 16
for x=12 to 240 step 16
box x,y,x+1,y+1
next x
next y
delete mesh 1
delete object 2
color backdrop 0
set ambient light 76
zonk#=2222.0
del=-10
scal#=120.0
sc#=100.0
set object fov 1,80
`````````````````````````````````
do
position camera 0,30,-140
point camera 0,0,0
set current bitmap 0
if cam1<cam then inc cam1
if cam1>cam then dec cam1
position object 1,-25,-10,100 `zonk# `-cam1
if zonk#>20.0 and delay<200
zonk#=zonk#*0.975
else
inc zonk#,0.02
endif
d=delay
rotate object 1,d*0.125,d*0.25,d*0.05
x#=50*sin(d*0.2)
y#=51*sin(d*0.3)
inc d
gosub stars
inc delay
inc del
if del>180
t=0
for f=1 to 66
x=limb offset x(1,f)
y=limb offset y(1,f)
z=limb offset z(1,f)
if x<tranx(f) then inc x:inc t
if x>tranx(f) then dec x:inc t
if y<trany(f) then inc y:inc t
if y>trany(f) then dec y:inc t
if z<tranz(f) then inc z:inc t
if z>tranz(f) then dec z:inc t
offset limb 1,f,x,y,z
next f
if t=0
inc seta:set object transparency 1,5:gosub change
else
set object transparency 1,0
endif
endif
tt=0
if seta=2 then sc#=40
if seta=3 then sc#=60
if seta=5 then sc#=110
if seta=4 then sc#=90
if scal#<sc# then inc scal#,1:tt=1
if scal#>sc# then dec scal#,1:tt=1
for f=1 to 66
scale limb 1,f,scal#,scal#,scal#
x#=limb angle x(1,f)
y#=limb angle y(1,f)
z#=limb angle z(1,f)
inc z#,0.05
dec x#,0.1
inc y#,yrot#(f)
rotate limb 1,f,x#,y#,z#
next f
if tt=0 then set object transparency 1,0
sync
loop
`````````````````````````````````````
````````````````````````````````````````
change:
sq=16
restore cube
a5=1
for y=0 to 5
for x=0 to 10
x1=x-5
y1=y-3
if seta=4
t=40+(y*3)
tranx(a5)=t*sin(x1*32.7)
trany(a5)=y*32
tranz(a5)=t*cos(x1*32.7)
endif
if seta=3
tranx(a5)=x*20
trany(a5)=y*20
tranz(a5)=x*20
endif
if seta=2
read x1,y1,z1
tranx(a5)=x1*sq
trany(a5)=y1*sq
tranz(a5)=z1*sq
endif
if seta=5
a2#=7+x*32.7
b2#=y1*32.7
xx#=100*sin(a2#)*cos(b2#)
yy#=100*(sin(a2#)*sin(b2#))
zz#=100*cos(a2#)
tranx(a5)=xx#
trany(a5)=yy#
tranz(a5)=zz#
cam=50
endif
if seta=6
a2#=7+x*32.7
b2#=y1*32.7
a1=x*10
a2=a1
a3=-150+rnd(300)
xx#=a1*sin(a2#)*cos(b2#)
yy#=a2*(sin(a2#)*sin(b2#))
zz#=a3*cos(a2#)
tranx(a5)=xx#
trany(a5)=yy#
tranz(a5)=zz#
cam=-200
yy=y
endif
if seta=1
t=y*6
tranx(a5)=(40+t)*sin(x1*32.7)
trany(a5)=y*34
tranz(a5)=(40+t)*cos(x1*32.7)
endif
if seta=0
x1=x-5
y1=y-3
tranx(a5)=x1*19
trany(a5)=-y1*19
tranz(a5)=rnd(20)
endif
inc a5
next x
next y
if seta>6 then seta=0:cam=0
del=0
return
````````````````````````````````````````
stars:
xx#=0.1*sin(delay*0.1)
for f=0 to 400
tims(f)=tims(f)-stardec(f)
if tims(f)<0
tims(f)=180+rnd(20)
starx#(f)=-1050+rnd(2100)
stary(f)=-1050+rnd(1360)
show object 700+f
endif
z#=object position z(700+f)
if z#<250.0 and tims(f)<3 then z#=500+rnd(1500)
dec z#,0.12
starx#(f)=starx#(f)+xx#
position object 700+f,starx#(f),stary(f),z#
x#=60+40*sin(tims(f))
set object transparency f+700,5
set alpha mapping on f+700,x#
zrotate object f+700,tims(f)*di(f)
next f
return
cube:
data -2,2,2
data -2,0,2
data -2,-2,2
data -2,2,0
data -2,0,0
data -2,-2,0
data -2,2,-2
data -2,0,-2
data -2,-2,-2
data 0,2,2
data 0,0,2
data 0,-2,2
data 0,2,0
data 0,0,0
data 0,-2,0
data 0,2,-2
data 0,0,-2
data 0,-2,-2
data 2,2,2
data 2,0,2
data 2,-2,2
data 2,2,0
data 2,0,0
data 2,-2,0
data 2,2,-2
data 2,0,-2
data 2,-2,-2
````dummy
data -1,1,1
data -1,0,1
data -1,-1,1
data -1,1,0
data -1,0,0
data -1,-1,0
data -1,1,-1
data -1,0,-1
data -1,-1,-1
data 0,1,1
data 0,0,1
data 0,-1,1
data 0,1,0
data 0,0,0
data 0,-1,0
data 0,1,-1
data 0,0,-1
data 0,-1,-1
data 1,1,1
data 1,0,1
data 1,-1,1
data 1,1,0
data 1,0,0
data 1,-1,0
data 1,1,-1
data 1,0,-1
data 1,-1,-1
```````````````````````````````
data -2,2,2
data -2,0,2
data -2,-2,2
data -2,2,0
data -2,0,0
data -2,-2,0
data -2,2,-2
data -2,0,-2
data -2,-2,-2
data 0,2,2
data 0,0,2
data 0,-2,2
data 0,2,0
data 0,0,0
data 0,-2,0
data 0,2,-2
data 0,0,-2
data 0,-2,-2
data 2,2,2
data 2,0,2
data 2,-2,2
data 2,2,0
data 2,0,0
data 2,-2,0
data 2,2,-2
data 2,0,-2
data 2,-2,-2