Optimising Challenge

BlitzMax Forums/BlitzMax Programming/Optimising Challenge

I changed my section "Loop 2" to run as designed... Try it now...Does it help?

SuperStrict
Local v1:Float
Local v2:Float

Local time1:Int	= MilliSecs()
For Local i:Int = 1 To 1000
	v1 = 0
	v2 = 190
	While v1 < v2 - 0.1 Or v1 > v2 + 0.1
		v1	= tweenangle1(v1,v2,0.1)
	Wend
Next
time1	= MilliSecs() - time1
Print "Time1: " + time1

Local time2:Int	= MilliSecs()
For Local i:Int = 1 To 1000
	v1 = 0
	v2 = 190
	While Abs(V1-V2)>.1
		v1:+ tweenangle(v1,v2,0.1)
		If v1>360 Then v1:-360
		If v1<0 Then v1:+360

	Wend
Next
time2	= MilliSecs() - time2
Print "Time2: " + time2

End


Function TweenAngle1:Float( p1:Float , p2:Float , t:Float)
	If Abs(p2-p1) > 180
		If p2 < 180 Return wrapangle(p1 - t * (p1 - p2) + 180)
		Else Return wrapangle(p1 - t * (p1 - p2))
	EndIf
	Return wrapangle(p1 + t * (p2 - p1))
	
	Function WrapAngle:Float(angle:Float)
		Return (angle + 360) Mod 360
	End Function
End Function

Function TweenAngle:Float( C:Float , T:Float , S:Float)
		Local DX:Float = T-C
	 	If Abs(DX)>180 Then DX=DX+Sgn(DX)*360
		Return (DX*S)
	
End Function