CanvasGadget click

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

CanvasGadget click

Message 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

.....i Love Pb :)
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: CanvasGadget click

Message 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...
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: CanvasGadget click

Message 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...
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: CanvasGadget click

Message 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
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: CanvasGadget click

Message par celtic88 »

:D
merci beaucoup .
j'ai pensé à "GetAsyncKeyState" ,je préférer votre code mais en peut le faire seulement sur "CanvasGadget"
.....i Love Pb :)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: CanvasGadget click

Message 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 ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre