Problem with timer.
BlitzMax Forums/BlitzMax Beginners Area/Problem with timer.
| ||
If I run this code and then tap fast the space bar it comes a time that the TimerTicks stucks at 0Strict Local timer:TTimer = CreateTimer(60) Graphics 640 , 480 While Not KeyHit(Key_Escape) Cls DrawText TimerTicks(Timer) , 10 , 10 If KeyHit(KEY_SPACE) Then timer = CreateTimer(60) Flip Wend |
| ||
I think you have to free the old timer before creating a new one.
Strict
Local timer:TTimer = CreateTimer(60)
Graphics 640 , 480
While Not KeyHit(Key_Escape)
Cls
DrawText TimerTicks(Timer) , 10 , 10
If KeyHit(KEY_SPACE) Then
timer = Null
timer = CreateTimer(60)
EndIf
Flip
Wend
|
| ||
| No the problem still here. |
| ||
| FlushKeys() doesn't as well. The problem seems to be that bmx itself needs a millisec for the timer to be created. Once you create them faster than bmx can handle it it comes to an overflow. Ahm. Why would you need to create a timer that often? This is not good coding at all creating items so often. |
| ||
| I think you have to free the old timer before creating a new one. No you don't. Strict Local timer:TTimer = CreateTimer(60) Graphics 640 , 480 While Not KeyHit(Key_Escape) Cls DrawText TimerTicks(timer) , 10 , 10 DrawText timer.toString(),10,20 If KeyHit(KEY_SPACE) Then timer = CreateTimer(60) Flip WendIf you try this code you can see it creates a new timer each time. |
| ||
| Just expirimenting. |
| ||
| The problem seems to be that bmx itself needs a millisec for the timer to be created. Once you create them faster than bmx can handle it it comes to an overflow. I thought that too, however creating five or six in a row, works aswell. More likely it's a (Windows?) limitation on ammount of concurrent Timers?This code seems to work: Strict Local timer:TTimer = CreateTimer(60) Graphics 640 , 480 While Not KeyHit(Key_Escape) Cls DrawText TimerTicks(timer) , 10 , 10 DrawText timer.toString(),10,20 If KeyHit(KEY_SPACE) StopTimer timer timer = CreateTimer(60) EndIf Flip Wend |