home *** CD-ROM | disk | FTP | other *** search
- rem Camera Showcase
-
- rem Standard Setup Code for all examples
- sync on : sync rate 0 : color backdrop rgb(0,128,0)
- set text font "arial" : set text size 16
- set text to bold : set text transparent
-
- rem Some music
- load music "misty.mp3",1 : loop music 1
-
- rem Loading Prompt
- sync : center text screen width()/2,screen height()/2,"LOADING" : sync
-
- rem Load image
- load image "wall.bmp",1
-
- rem Create character
- for t=1 to 2
- load object "miko\miko.x",t
- set object specular t,0
- xrotate object t,270
- fix object pivot t
- if t=1
- position object t,0,0,200
- rotate object t,0,180,0
- else
- position object t,0,0,-200
- rotate object t,0,0,0
- endif
- loop object t,0,9000
- set object speed t,500
- next t
-
- rem Create sphere room
- load object "Sphere2.x",3
- scale object 3,1000,1000,1000
- scale object texture 3,10,5
- set object specular 3,0
- texture object 3,1
-
- rem Create reflective circular floor
- make object sphere 5,1000
- color object 5,0 : ghost object on 5
- set reflection shading on 5
- scale object 5,100,100,1
- xrotate object 5,90+180
- set object specular 5,0
-
- rem Cut-out view close-up
- make camera 1
- set camera view 1,320+48,16,640-16,240-48
- make light 1 : color light 1,256,512,2024 : set light range 1,1000
-
- rem Create floating globe
- make object sphere 4,125
- scale object texture 4,300,100
- ghost object on 4
-
- rem Create buzz globe
- make object sphere 999,10 : color object 999,rgb(255,0,0)
- make light 7 : color light 7,1024,100,100
- set light range 7,200
-
- rem Setup main camera and light
- set current camera 0
- set camera range 1,7000
- set point light 0,0,0,0
- set light range 0,1500
- color light 0,256,512,256
- camdist#=0.0
-
- rem Rim Object
- for t=7 to 28
- s#=t : s#=s#/3.0
- make object cube t,s#
- texture object t,4
- set object t,1,1,1,0,0,0,0
- ghost object on t
- next t
-
- rem Effect Prompt
- desc$="Multicamera and Reflection View"
-
- rem Main loop
- do
-
- rem Character control
- if leftkey()=1 then yrotate object 1,wrapvalue(object angle y(1)-3)
- if rightkey()=1 then yrotate object 1,wrapvalue(object angle y(1)+3)
-
- rem Let camera track character
- a#=object angle y(1)
- x#=object position x(1)
- y#=object position y(1)
- z#=object position z(1)
- set current camera 1
- set camera to follow x#,y#,z#,a#,-115,135,10.0,0
- set current camera 0
-
- rem Handle camera collision within circle
- a#=atanfull(x#,z#)
- d#=sqrt((x#*x#)+(z#*z#))
- if d#>500 then x#=sin(a#)*500 : z#=cos(a#)*500 : position object 1,x#,y#,z#
-
- rem Slowly move camera out
- if camdist#<100.0 then camdist#=camdist#+0.1
-
- rem Slowly rotate sphere room
- xrotate object 3,wrapvalue(object angle x(3)+0.1)
- yrotate object 3,wrapvalue(object angle y(3)+0.2)
- zrotate object 3,wrapvalue(object angle z(3)+0.3)
-
- rem Hover the orb around center
- v#=wrapvalue(v#+0.5) : h#=wrapvalue(h#+2.0)
- position object 4,sin(v#)*-750,100+(cos(h#)*100),cos(v#)*-750 : yrotate object 4,v#+60
- position light 1,sin(v#)*-800,100+(cos(h#)*100),cos(v#)*-800
- position light 0,sin(v#)*-500,100+(cos(h#)*100),cos(v#)*-500
- position camera 0,sin(v#)*(camdist#*7.0),200+(cos(h#)*100),cos(v#)*(camdist#*7.0)
- point camera 0,x#,y#+100,z#
-
- rem Fire light
- position object 999,0,200+(cos(h#+10)*150),sin(h#+10)*150
- position light 7,0,200+(cos(h#)*150),sin(h#)*150
-
- rem Emit particles around rim
- for t=7 to 28
- r#=wrapvalue(r#+0.5)
- rotate object t,r#,r#*2,r#*3
- position object t,cos(r#+t)*500,0,sin(r#+t)*500
- next t
-
- rem Show Framerate
- center text (640-16)-(((640-16)-(320+48))/2),20,"Use Arrow Keys"
- 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
-