Game Timing

BlitzMax Forums/BlitzMax Programming/Game Timing

See if this makes any sense:

Const kDeltaTime:Double = 0.01 

Repeat' - - - - - - - - - - - - - - - - - 

	Try	  
	
		Local dNewTime:Double = MilliSecs() * 0.001
		Local dDeltaTime:Double = dNewTime - dCurrentTime
		If dDeltaTime > .25
			dDeltaTime = .25
		End If
		dCurrentTime = dNewTime

		dTimeAccumulator :+ dDeltaTime	
	    lFrameAccumulator :+ 1
	    
	    If (lFrameAccumulator = 20)
	    	
			dSmothDeltaTime = dTimeAccumulator / lFrameAccumulator	    	    
	        dTimeAccumulator = 0
	    	lFrameAccumulator = 0
	    End If
	    
        
	    dDeltaTime = dSmothDeltaTime
	    
		While (dDeltaTime > 0)
	        
	        dTimeStep = dDeltaTime   
	        If (dTimeStep > kDeltaTime)  
	        	dTimeStep = kDeltaTime	 
	        End If 
	        	        
			'Process a Game Turn
			pTReferee.ProcessTurn(dTimeStep*100)
		    
			dDeltaTime :- dTimeStep
			
		End While    

		'Render the Turn.
		pTReferee.RenderTurn()
	
	Catch ex:Object
		Print ex.ToString()
		End
	End Try

	'Flip 
	Flip 1
	Cls 
	
	
Until KeyHit(Key_Q)