home *** CD-ROM | disk | FTP | other *** search
- rem Music Showcase
-
- rem Standard Setup Code for all examples
- sync on : sync rate 0 : backdrop off
- set text font "arial" : set text size 16
- set text to bold : set text transparent
-
- rem Loading prompt
- sync : center text screen width()/2,screen height()/2,"LOADING" : sync
-
- rem Load room
- load object "world\room.x",1
- xrotate object 1,270
- fix object pivot 1
- rotate object 1,0,0,0
- set object specular 1,0
-
- rem Load for selection
- for t=2 to 5
- if t=2 then load object "models\harp\harp.x",t : tx=-100 : ta=135
- if t=3 then load object "models\trumpet\trumpet.x",t : tx=-200 : ta=90
- if t=4 then load object "models\piano\piano2.x",t : tx=100 : ta=315
- if t=5 then load object "models\mandolin\mandolin.x",t : tx=-150 : ta=90
- position object t,tx,0,40-(((t-3)*80))
- rotate object t,270,ta,0
- scale object t,25,25,25
- fix object pivot t
- rotate object t,0,180,0
- set object specular t,0
- next t
-
- rem Load music
- load music "music\space.mp3",1 : loop music 1
- load music "music\misty.mp3",2
- load music "music\fun.mp3",3
- load music "music\hero.mp3",4
-
- rem Setup camera and light
- set point light 0,0,0,0
- position camera -450,100,10
- yrotate camera 90
-
- rem Select first globe (via Xangle trigger)
- xrotate object 2,1
-
- rem Main loop
- desc$="Music Room (Select An Instrument)"
- do
-
- rem Control mouse selector
- if mouseclick()=1
- sel=0
- if mousex()>70 and mousex()<600
- sel=1+((mousex()-70)/(530/4))
- if sel>4 then sel=4
- endif
- if sel>0
- for t=2 to 5
- if t<>(1+sel) and object angle x(t)=1
- xrotate object t,0
- if t=2 then stop music 1
- if t=3 then stop music 2
- if t=4 then stop music 3
- if t=5 then stop music 4
- endif
- next t
- if object angle x(1+sel)=0
- xrotate object 1+sel,1
- if sel=1 then loop music 1
- if sel=2 then loop music 2
- if sel=3 then loop music 3
- if sel=4 then loop music 4
- endif
- endif
- endif
-
- rem Control selected sphere
- for t=2 to 5
- a#=wrapvalue(object angle y(t)+1)
- if object angle x(t)=0 and a#=1.0 then a#=0
- yrotate object t,a#
- a#=object angle y(t)
- position object t,object position x(t),50-(cos(a#)*50),40-(((t-3)*80))
- if object angle x(t)=1 then lightz#=object position z(t) : lighty#=object position y(t)
- next t
-
- rem Control light
- position light 0,-250,lighty#+50,lightz#
-
- rem Show Framerate
- text 20,screen height()-40,desc$
- fps$="DBPro Fps: "+str$(screen fps())
- text screen width()-20-text width(fps$),screen height()-40,fps$
-
- rem Update screen
- sync
-
- rem End loop
- loop
-
-