Mouse inactive

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4973
Inscription : mer. 09/nov./2005 9:53

Mouse inactive

Message par SPH »

Code : Tout sélectionner

; PB 5.70LTS
;
; Code et graphismes : SPH(c)2020
;
;

If InitSprite() = 0
  MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
  End
EndIf
If InitMouse() = 0
  MessageRequester("Erreur", "Impossible d'activer la souris !", 0)
  End
EndIf
LoadFont(1000, "Arial", 20)

If OpenWindow(0, 0, 0, 780, 560, "Covid 19 - Le jeu", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ;ButtonGadget(0, 170, 135, 45, 20, "Quitter")
  
  If OpenWindowedScreen(WindowID(0), 0, 0, 780, 560)
          CreateSprite(100, 20, 20)
          If StartDrawing(SpriteOutput(100))
            Box(0, 0, 20, 20, RGB(255, 0, 155))
            Box(5, 5, 10, 10, RGB(155, 0, 255))
            StopDrawing()
          EndIf
    
      
    
    
  Else
    MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre !", 0)
    End
  EndIf
EndIf

  ; ReleaseMouse(1)
    
Repeat
  ; Il est très important de traiter tous les évènements restants dans la file d'attente à chaque tour
  ;
  Repeat
    Event = WindowEvent()
    
    Select Event 
        ;         Case #PB_Event_Gadget
        ;           If EventGadget() = 0
        ;             End
        ;           EndIf
        
      Case #PB_Event_CloseWindow
        End 
    EndSelect
  Until Event = 0
  
  While WindowEvent():Wend  ;<<-----------------------------
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ExamineMouse() ; Etat de la souris
  xm = MouseX()   ; Position en x de la souris                     
  ym = MouseY()   ; Position en y de la souris
  
  
  

  
  StartDrawing(ScreenOutput())
  
  a$=Str(xm)
  DrawingFont(FontID(1000))
  BackColor(RGB(34,34,34))
  DrawText(40,50,a$, RGB(50,50,255))
  a$=Str(ym)
  DrawingFont(FontID(1000))
  BackColor(RGB(34,34,34))
  DrawText(100,50,a$, RGB(50,50,255))
  

  StopDrawing()
  
  DisplayTransparentSprite(100,xm,ym)
  
  FlipBuffers() 
  
  Delay(1)
  
  
ForEver
Salut,

j'ai un dileme avec la souris. Je voudrais utiliser le pointeur de la souris de windows mais la seule solution que j'ai trouvé est de mettre ReleaseMouse(1)
Hors, dans ce cas, les coordonnees de la souris ne sont pas calculés...
Et si je met un sprite pour pointeur, ca marche mais je n'ai plus acces a la croix de fermeture de ma fenetre.

Que faire ? :|

Merci bien :wink:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Mouse inactive

Message par TazNormand »

Salut SPH,

en testant l'appui avec une touche "système", comme Control :

Code : Tout sélectionner

; PB 5.70LTS
;
; Code et graphismes : SPH(c)2020
;
;

If InitSprite() = 0
  MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
  End
EndIf
If InitMouse() = 0
  MessageRequester("Erreur", "Impossible d'activer la souris !", 0)
  End
EndIf
If InitKeyboard() = 0
  MessageRequester("Erreur", "Impossible d'activer le clavier !", 0)
  End
EndIf
LoadFont(1000, "Arial", 20)

If OpenWindow(0, 0, 0, 780, 560, "Covid 19 - Le jeu", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ;ButtonGadget(0, 170, 135, 45, 20, "Quitter")
  
  If OpenWindowedScreen(WindowID(0), 0, 0, 780, 560)
    CreateSprite(100, 20, 20)
    If StartDrawing(SpriteOutput(100))
      Box(0, 0, 20, 20, RGB(255, 0, 155))
      Box(5, 5, 10, 10, RGB(155, 0, 255))
      StopDrawing()
    EndIf
    
    
    
    
  Else
    MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre !", 0)
    End
  EndIf
EndIf

Repeat
  ; Il est très important de traiter tous les évènements restants dans la file d'attente à chaque tour
  ;
  Repeat
    Event = WindowEvent()
    ExamineKeyboard()
    If KeyboardPushed(#PB_Key_LeftControl)
      Debug "keyboardpushed"
      ReleaseMouse(1)
    EndIf 
    If KeyboardReleased(#PB_Key_LeftControl)
      Debug "keyboardReleased"
      ReleaseMouse(0)
    EndIf 
    Select Event
        ;         Case #PB_Event_Gadget
        ;           If EventGadget() = 0
        ;             End
        ;           EndIf
        
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event = 0
  
  While WindowEvent():Wend  ;<<-----------------------------
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ExamineMouse() ; Etat de la souris
  xm = MouseX()  ; Position en x de la souris                     
  ym = MouseY()  ; Position en y de la souris
  
  
  
  
  
  StartDrawing(ScreenOutput())
  
  a$=Str(xm)
  DrawingFont(FontID(1000))
  BackColor(RGB(34,34,34))
  DrawText(40,50,a$, RGB(50,50,255))
  a$=Str(ym)
  DrawingFont(FontID(1000))
  BackColor(RGB(34,34,34))
  DrawText(100,50,a$, RGB(50,50,255))
  
  
  StopDrawing()
  
  DisplayTransparentSprite(100,xm,ym)
  
  FlipBuffers()
  
  Delay(1)
  
  
ForEver
Image
Image
Avatar de l’utilisateur
SPH
Messages : 4973
Inscription : mer. 09/nov./2005 9:53

Re: Mouse inactive

Message par SPH »

Merci pour ta reponse rapide.

Je vais vous pondre le jeu du moment : Covid 19 - Le jeu :wink: :twisted: :mrgreen:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Mouse inactive

Message par TazNormand »

Tu peux aussi regarder la doc sur ReleaseMouse(), il y a exactement l'exemple de ce que tu veux faire.
Image
Image
Répondre