Code archives/Algorithms/Race Timer Functions
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