This is my adapted SyncOn Demo from the SyncOn Convention
in germany ...
sync on:sync rate 0:hide mouse:autocam off:load music "media\music.mod",1
loop music 1:smax=250:dim star#(smax,6):make stars(1,smax,"star"):make spacebox(1000,"box")
load image "media\left.png",1:make object plain 1001,480,440:texture object 1001,1:ghost object on 1001:position object 1001,240,0,500
load image "media\right.png",1:make object plain 1002,480,440:texture object 1002,1:ghost object on 1002:yrotate object 1002,180
position object 1002,240,0,-500:backdrop off:set global collision off:repeat:gosub move_stars
a#=wrapvalue(a#+0.5):set camera to follow 0,0,0,a#,sin(a#)*400,sin(a#)*100,50,0:rotate object 1000,a#,a#,a#:sync:until mouseclick()
end
move_stars:
for i=1 to smax:star#(i,1)=star#(i,1)+star#(i,4):star#(i,2)=star#(i,2)+star#(i,5):star#(i,3)=star#(i,3)+star#(i,6):if star#(i,0)=0
star#(i,0)=1:star#(i,1)=0:star#(i,2)=0:star#(i,3)=0:star#(i,4)=(rnd(600)-300)*0.01
star#(i,5)=(rnd(600)-300)*0.01:star#(i,6)=(rnd(600)-300)*0.01:endif:if abs(star#(i,1))>500 or abs(star#(i,2))>500 or abs(star#(i,3))>500 then star#(i,0)=0
position object i,star#(i,1),star#(i,2),star#(i,3):set object to camera orientation i:next i:return
function make spacebox(o,n$)
make object plain o,512,512:make mesh from object 1,o:for l=1 to 6:read x,y,z,x#,y#,z#:load image "media\"+n$+str$(l)+".png",1
add limb o,l,1:rotate limb o,l,x,y,z:offset limb o,l,x#,y#,z#:texture limb o,l,1:next l
hide limb o,0:set object o,1,1,0,1,0,1,0:scale object o,400,400,400:endfunction
data 90,0,0,0,255.5,0,0,0,0,0,0,-255.5,0,90,0,-255.5,0,0:data 0,180,0,0,0,255.5,0,270,0,255.5,0,0,270,0,0,0,-255.5,0
function make stars(b,e,n$)
for i=1 to 4:load image "media\"+n$+str$(i)+".png",i:next i:for o=b to e:make object plain o,32,32
set object o,1,1,1:texture object o,rnd(3)+1:ghost object on o:next o:endfunction
and here is the media zip ...
http://www.dbpro.de/20lines.zip