home *** CD-ROM | disk | FTP | other *** search
- rem Light Showcase
-
- rem Choose better display mode
- if check display mode(1024,768,32)=1
- set display mode 1024,768,32
- else
- if check display mode(1024,768,16)=1
- set display mode 1024,768,16
- endif
- endif
-
- 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 Load Hero music
- load music "music\hero.mp3",1 : loop music 1
-
- rem User prompt
- sync : center text screen width()/2,screen height()/2,"LOADING" : sync
-
- rem Load Statue Model
- set normalization on
- load object "models\statue.x",1
- load image "models\bumpmap.bmp",1
- xrotate object 1,270 : fix object pivot 1
- set light mapping on 1,1
- set object specular 1,0
- rotate object 1,0,0,0
-
- rem Load room
- load object "world\room.x",2
- xrotate object 2,270 : fix object pivot 2
- set object specular 2,0
- rotate object 2,0,0,0
-
- rem Set dynamic light zero
- hide light 0
-
- rem Create pixie lights and dots
- for l=1 to 7
- make light l
- set point light l,0,0,0
- set light range l,2000
- make object sphere 2+l,50 : ghost object on 2+l
- if l>1 then hide light l : hide object 2+l
- next l
-
- rem Main loop
- desc$="Pixie Lights (Select keys 1-7)"
- do
-
- rem Control light visibility
- k$=inkey$()
- if k$>="1" and k$<="7"
- if keypress=0
- keypress=1
- li=1+(asc(k$)-asc("1"))
- if light visible(li)=1
- hide light li : hide object 2+li
- else
- show light li : show object 2+li
- endif
- c#=wrapvalue(180+(a#+(li*85)))
- endif
- else
- keypress=0
- endif
-
- rem Rotate around model
- a#=wrapvalue(a#+0.5)
- b#=wrapvalue(b#+0.2)
- c#=wrapvalue(c#+0.05)
- x#=cos(c#)*250.0
- z#=sin(c#)*300.0
- position light 0,x#,150,z#
- position camera x#,100,z#
- point camera 0,150,0
-
- rem Rotate lights around model
- for l=1 to 7
- x#=cos(a#+(l*85))*300.0
- z#=sin(a#+(l*85))*150.0
- position light l,x#,100+(sin(b#)*100),z#
- position object 2+l,x#,100+(sin(b#)*100),z#
- next l
-
- rem Alter light colours over time
- leva#=wrapvalue(leva#+0.01)
- level#=cos(leva#)
- for l=1 to 7
- col=127.0+(127.0*level#)
- rev=col*-1
- if l=1 then color light l,col,rev,rev
- if l=2 then color light l,128,col,128
- if l=3 then color light l,255,255,col*2
- if l=4 then color light l,col,rev,col
- if l=5 then color light l,col,col,col
- if l=6 then color light l,500,500,500
- if l=7 then color light l,rev*3,rev*3,rev*3
- next l
-
- 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
-
-