home *** CD-ROM | disk | FTP | other *** search
- rem Tutorial 6
-
- rem Initial settings
- sync on : sync rate 100
- backdrop off : hide mouse
-
- rem Select font
- 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 all media for game
- gosub _load_game
-
- rem Setup all objects for game
- gosub _setup_game
-
- rem Game loop
- do
-
- rem Control game elements
- gosub _control_player
- gosub _control_gunandbullet
- gosub _control_enemies
-
- rem Update screen
- sync
-
- rem End loop
- loop
-
- rem End program
- end
-
- _control_player:
-
- rem Control player direction
- rotate camera camera angle x(0)+(mousemovey()/2.0),camera angle y(0)+(mousemovex()/2.0),0
-
- rem Control player movement
- cx#=camera angle x(0) : cy#=camera angle y(0)
- if upkey()=1 then xrotate camera 0,0 : move camera 0,0.2 : xrotate camera 0,cx#
- if downkey()=1 then xrotate camera 0,0 : move camera 0,-0.2 : xrotate camera 0,cx#
- if leftkey()=1 then yrotate camera 0,cy#-90 : move camera 0.2 : yrotate camera 0,cy#
- if rightkey()=1 then yrotate camera 0,cy#+90 : move camera 0.2 : yrotate camera 0,cy#
- if wrapvalue(camera angle x(0))>40 and wrapvalue(camera angle x(0))<180 then xrotate camera 0,40
- if wrapvalue(camera angle x(0))>180 and wrapvalue(camera angle x(0))<280 then xrotate camera 0,280
-
- rem Apply simple gravity to player
- position camera camera position x(),camera position y()-0.1,camera position z()
-
- rem Player is always focal point of sky
- position object SkyObj,camera position x(),camera position y(),camera position z()
-
- rem Position listener at player for 3D sound
- position listener camera position x(),camera position y(),camera position z()
- rotate listener camera angle x(),camera angle y(),camera angle z()
-
- rem In case of restart
- if restart=1
- restart=0
- set bsp collision off 1
- rotate camera 0,0,0
- position camera 2,2,2
- set bsp camera collision 1,0,0.75,0
- endif
-
- return
-
- _control_gunandbullet:
-
- rem *ADDCODE* TUT6C
-
- rem *ADDCODE* TUT6D
-
- return
-
- _control_enemies:
- return
-
- _control_stats:
- return
-
- _setup_game:
-
- rem Setup camera
- set camera range 0.1,5000
- autocam off
-
- rem Setup sky model
- set object SkyObj,1,0,0,0,0,0,0
- scale object SkyObj,20,20,20
-
- rem *ADDCODE* TUT6B
-
- rem Trigger player initialisation
- restart=1
-
- return
-
- _load_game:
-
- rem Load BSP world and sky model
- load bsp "world\ikzdm1.pk3","ikzdm1.bsp"
- SkyObj=1 : load object "models\sky\am.x",SkyObj
-
- rem *ADDCODE* TUT6A
-
- return
-
-