Code archives/Algorithms/Race Timer Functions
The code archive is locked. These are the original blitzbasic.com code archives, kept so they can still be read. No new entries, edits or comments can be made here. To join in, head over to the Blitz3D+ code archives.
This code has been declared by its author to be Public Domain code.
Download source code
| This set of functions allows you to deal with a timer. Sounds easy I know, but having written a race game I know it's a pain in the arse! Basically this has 3 little functions, reset_clock(), start_stop_clock() and get_clock() The usage is shown in the example below. So the race starts... reset_clock(): start_stop_clock() The game gets paused... start_stop_clock() The game restarts... start_stop_clock() The game ends... start_stop_clock() In the game loop... timer$=get_clock() Easy as that! Oh and if you want to check if the clock is running or not t_clock_mode=0 is stopped and 1 is running. Let me know if this is of use, credit me if you use it... it's nice to isn't it! |
; Race timer functions by Rob Farley ; 2003 Mentalillusion ; http://www.mentalillusion.co.uk ; rob@mentalillusion.co.uk Graphics 400,300,0,2 ; globals necessary for the timer to work Global t_clock=0 Global t_offset=0 Global t_total_offset=0 Global t_clock_mode=0 SetBuffer BackBuffer() ; reset clock function to zero the clock reset_clock() Repeat ; main loop ; get the current time and put it into a variable timer$=get_clock$() Color 255,255,255 Text 200,0,timer$,True Text 200,40,"Space to Stop/Start, R to reset clock",True Flip ; clock control If KeyHit(57) Then start_stop_clock() ;start/stop clock on spacebar If KeyHit(19) Then reset_clock() ;reset clock if you hit R Cls Until KeyHit(1) ;until you hit ESC Function get_clock$() If t_clock_mode=1 Then t=MilliSecs()-t_clock-t_total_offset If t_clock_mode=0 Then t=t_offset-t_clock-t_total_offset h=t/10 s=h/100 h=h-(s*100) m=s/60 s=s-(m*60) Return Right("00"+m,2)+":"+Right("00"+s,2)+":"+Right("00"+h,2) ; return the clock in MM:SS:HH format End Function Function reset_clock() t_clock=MilliSecs() t_offset=MilliSecs() t_total_offset=0 End Function Function start_stop_clock() If t_clock_mode=0 t_clock_mode=1 t_total_offset=t_total_offset+MilliSecs()-t_offset Else t_clock_mode=0 t_offset=MilliSecs() EndIf End Function |
Comments
None.
Code Archives Forum