home *** CD-ROM | disk | FTP | other *** search
- Rem * Title : Third Person Camera
- Rem * Author : DBS-LB
- Rem * Date : 1st Sept 99
- rem ===========================================
- rem DARK BASIC EXAMPLE PROGRAM 3
- rem ===========================================
- rem This program operates a third person camera
- rem -------------------------------------------
-
- rem Make a simple scene for the camera to look at
- make matrix 1,10000.0,10000.0,25,25
- load bitmap "floor1.bmp",1
- get image 1,0,0,256,256
- delete bitmap 1
- prepare matrix texture 1,1,2,2
- randomize matrix 1,50.0
- set matrix height 1,12,12,300.0
- update matrix 1
-
- rem Create blob character to follow
- make object sphere 1,100.0
-
- rem Set variables for character position
- x#=500
- z#=500
-
- rem Activate manual sync
- sync on
-
- rem Begin loop
- do
-
- rem Control camera with arrow keys
- if upkey()=1 then x#=newxvalue(x#,a#,10) : z#=newzvalue(z#,a#,10)
- if downkey()=1 then x#=newxvalue(x#,a#,-10) : z#=newzvalue(z#,a#,-10)
- if leftkey()=1 then a#=wrapvalue(a#-10.0)
- if rightkey()=1 then a#=wrapvalue(a#+10.0)
-
- rem Update character
- y#=get ground height(1,x#,z#)+50.0
- position object 1,x#,y#,z#
- yrotate object 1,a#
-
- rem Position camera to the back of the character
- cx#=newxvalue(x#,wrapvalue(a#+180),300)
- cz#=newzvalue(z#,wrapvalue(a#+180),300)
- cy#=get ground height(1,cx#,cz#)+100.0
- position camera cx#,cy#,cz#
-
- rem Point camera at object
- point camera x#,y#,z#
-
- rem Syncronise
- sync
-
- rem End loop
- loop
-