Page 1 sur 1

CanvasGadget click

Publié : dim. 28/janv./2018 20:42
par celtic88
hi :)
en "Pb" il y a t'il un moyen pour détecter la Durée d un click!

code

Code : Tout sélectionner

Procedure Game2D_Input()
  Select EventType()
    Case #PB_EventType_LeftButtonDown
      TimeClickMove = ElapsedMilliseconds()
      While GetGadgetAttribute(0, #PB_EventType_LeftButtonDown)
      Wend
      TimeClickMove= ElapsedMilliseconds()-TimeClickMove
      Debug TimeClickMove
      If TimeClickMove < 100
        Debug 1
      Else
        Debug 2
      EndIf
  EndSelect
EndProcedure

If OpenWindow(0, 0, 0, 220, 220, "test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 10, 10, 200, 200)
  BindGadgetEvent(0 ,@Game2D_Input())
  
  Repeat
    Event = WaitWindowEvent() 
    
  Until Event = #PB_Event_CloseWindow
EndIf


Re: CanvasGadget click

Publié : lun. 29/janv./2018 2:15
par Ollivier
Bonjour Celtic,

oui, avec ElapsedMilliseconds() pour avoir ça en centièmes de seconde. Je vais regarder ça, et tenter de poster quelque chose avant que tu n'aies trouvé la réponse...

Re: CanvasGadget click

Publié : lun. 29/janv./2018 2:19
par Ollivier
Je me demande si un

Code : Tout sélectionner

Static TimeClickMove
en tête de procédure, ou bien un

Code : Tout sélectionner

Global TimeClickMove
en tête de code n'est pas suffisant. Je vais vérifier ça...

Re: CanvasGadget click

Publié : lun. 29/janv./2018 2:57
par Ollivier

Code : Tout sélectionner

;********************************************************************************************
Procedure LeftButton()
 Static FlipFlop, Start, Finish
 FlipFlop ! 1
 If FlipFlop
  Start = ElapsedMilliseconds()
 Else
  Finish = ElapsedMilliseconds()
  Debug Finish - Start
 EndIf
EndProcedure

If OpenWindow(0, 0, 0, 200, 200, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 CanvasGadget(10, 0, 0, 200, 200)
 BindGadgetEvent(10, @LeftButton(), #PB_EventType_LeftButtonDown)
 BindGadgetEvent(10, @LeftButton(), #PB_EventType_LeftButtonUp)
 Repeat
 Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: CanvasGadget click

Publié : lun. 29/janv./2018 8:08
par celtic88
:D
merci beaucoup .
j'ai pensé à "GetAsyncKeyState" ,je préférer votre code mais en peut le faire seulement sur "CanvasGadget"

Re: CanvasGadget click

Publié : lun. 29/janv./2018 9:05
par Ar-S
#PB_EventType_LeftButtonDown est effectivement dédié au canvasgadget, mais c'est cross plateform car natif.
Et le titre de ton sujet est bien CanvasGadget click ;)