Page 1 sur 1
Timer
Publié : jeu. 10/sept./2015 10:32
par MichelM38
Bonjour
Sous visual basic,il existe un objet permettant de programmer un événement avec une période programmable ( timer si je me souviens bien)
Existe t il sous PB un gadget equivalent ? Ou sinon, connaissez des librairies ou codes permettant de le faire ?
Merci
Re: Timer
Publié : jeu. 10/sept./2015 10:36
par Kwai chang caine
Bonjour MichelM38
Dans l'aide y'a deja ça en natif
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 400, 100, "Timer Exemple", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ProgressBarGadget(0, 10, 10, 380, 20, 0, 100)
AddWindowTimer(0, 123, 250)
Value = 0
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Timer And EventTimer() = 123
Value = (Value + 5) % 100
SetGadgetState(0, Value)
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Re: Timer
Publié : jeu. 10/sept./2015 10:38
par Kwai chang caine
Et si c'est que pour Windows et que tu n'as pas de version de démo, il peut y avoir ça avec les API
Code : Tout sélectionner
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
Debug "--------------------1 seconde"
; Ici, le code à executer toutes les secondes
Case 2
Debug "0.2 secondes"
; Ici, le code à executer toutes les 200 millisecondes
Case 3
Debug "-------------------------------------------3 secondes"
; Ici, le code à executer toutes les 3 secondes
EndSelect
EndSelect
EndProcedure
If OpenWindow(0, 100, 100, 100, 100,"", #PB_Window_SystemMenu)
Handle = WindowID(0)
SetTimer_(Handle, 1, 1000, @TimerProc()) ; envoie un evenement toutes les 1000 millisecondes
SetTimer_(Handle, 2, 200, @TimerProc()) ; envoie un evenement toutes les 200 millisecondes
SetTimer_(Handle, 3, 3000, @TimerProc()) ; envoie un evenement toutes les 3000 millisecondes
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Re: Timer
Publié : jeu. 10/sept./2015 11:14
par microdevweb
Dans le cadre d'un jeux tu peux également de le développé toi même
Édité pour correction (conso processeur)
Code : Tout sélectionner
InitSprite()
OpenWindow(0,0,0,800,600,"teste")
OpenWindowedScreen(WindowID(0),0,0,800,600)
Define gTimeElapsed,gTriger=1000,gCount=0
CreateSprite(0,100,100)
LoadFont(0,"Arial",30)
Repeat
Repeat
gEvent=WindowEvent()
If gEvent=#PB_Event_CloseWindow
End
EndIf
Until gEvent=0
If (ElapsedMilliseconds()-gTimeElapsed)>=gTriger ;Le triger ICI
gCount+1
StartDrawing(SpriteOutput(0))
DrawingFont(FontID(0))
X=(100/2)-((TextWidth(Str(gCount)+" '' "))/2)
Y=(100/2)-((TextHeight(Str(gCount)+" '' "))/2)
DrawText(X,Y,Str(gCount)+" '' ")
StopDrawing()
gTimeElapsed=ElapsedMilliseconds()
EndIf
ClearScreen(0)
DisplaySprite(0,350,250)
FlipBuffers()
ForEver