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
|