Page 1 sur 1

ExamineMouse fait disparaitre la souris !

Publié : lun. 09/oct./2006 17:34
par SPH
En prenant un exemple fourni dans PB4, et en essayant simplement de rajouter un ExamineMouse(), ca fait carrement disparaitre le pointeur de la souris !
Pourtant, il y a bien un ecran d'ouvert ! 8O

look:

Code : Tout sélectionner

InitSprite()
InitMouse()
OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonGadget(0, 170, 135, 45, 20, "Quitter")
OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0)
CreateSprite(0, 20, 20)
StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 0, 155))
Box(5, 5, 10, 10, RGB(155, 0, 255))
StopDrawing()

  
  
  direction = 2
  Repeat

    Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
          If EventGadget() = 0
            End
          EndIf
        
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0
  
  ExamineMouse() ; DISPARITION DU POINTEUR DE LA SOURIS !!!
    
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 0))
    DisplaySprite(0, x, x)
    x + direction
    If x > 140 : direction = -2 : EndIf
    If x < 0   : direction =  2 : EndIf
    Delay(1)
  ForEver

Publié : lun. 09/oct./2006 17:43
par Patrick88
bin ouais, j'ai constaté aussi, mais je me souviens plus comment c'était avec la version 3.9 alors... l'age késtuveu....

:?

pat

Publié : lun. 09/oct./2006 17:54
par Anonyme
Bizarre :?


v'la une soluce :

Code : Tout sélectionner

If ExamineMouse() ; DISPARITION DU POINTEUR DE LA SOURIS !!!
  ReleaseMouse(1)
EndIf



@++

Publié : lun. 09/oct./2006 17:57
par SPH
Merci Bator !

PS: tu devrais faire un ReleaseAvatar(1) :lol:

Publié : lun. 09/oct./2006 18:07
par SPH
Tiens, le 'bug' continue plus en profondeur. Les coordonnées de la souris ne varient pas :

Code : Tout sélectionner

InitSprite() 
InitMouse() 
OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0) 
 
  
 
Repeat

    Event = WaitWindowEvent () 

      Select Event 
      Case #PB_Event_CloseWindow
          End 
      EndSelect


  If ExamineMouse()
  ReleaseMouse(1) 
  Else
  Debug MouseX()
  Debug MouseY()
  EndIf 
  
ForEver

Publié : lun. 09/oct./2006 18:33
par Patrick88
si ça ne marchait pas, comment expliques tu que le programme de "dodo" fonctionne ?

http://purebasic.forum-gratuit.com/view ... us+regarde

pat

Publié : lun. 09/oct./2006 18:42
par Anonyme
Là, ca viens de toi :wink:

Code : Tout sélectionner

InitSprite()
InitMouse()
OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0)
 
 
 ReleaseMouse(1)
Repeat
  
  Event = WaitWindowEvent ()
  
  Select Event
    Case #PB_Event_CloseWindow
      End
  EndSelect
  
  
  ExamineMouse()
    
    Debug WindowMouseX(0)
    Debug WindowMouseY(0)
  
  
ForEver 


@++

Publié : lun. 09/oct./2006 18:43
par SPH
Patrick88 a écrit :si ça ne marchait pas, comment expliques tu que le programme de "dodo" fonctionne ?

http://purebasic.forum-gratuit.com/view ... us+regarde

pat
Car il utilises une API :

Code : Tout sélectionner

  GetCursorPos_(CursorPos.POINT) 
    MouseX = CursorPos\x 
    MouseY = CursorPos\y
@Bator : perfect

Publié : mer. 11/oct./2006 2:05
par poshu
pourquoi ne pas tout simplement afficher un sprite aux coordonnés du pointeur?