gestion souris et OpenWindowedScreen ???
Publié : lun. 28/sept./2020 19:55
Bonjour,
je ne comprends pas la gestion de la souris dans le programme ci-dessous (j'ai dessiné une souris en Sprite):
1) Pourquoi "ma" souris ne se déplace pas sur l'écran lorsque je déplace physiquement la souris sur le tapis ?
2) Il apparaît la souris "Système" : pourquoi il n'y a aucun effet lorsque je clique sur le X au milieu de l'écran ?
3) Comment faire pour pouvoir fermer le programme avec la souris "système" mais pouvoir gérer mon jeu avec ma propre souris définie en Sprite ?
Merci de votre aide.

je ne comprends pas la gestion de la souris dans le programme ci-dessous (j'ai dessiné une souris en Sprite):
1) Pourquoi "ma" souris ne se déplace pas sur l'écran lorsque je déplace physiquement la souris sur le tapis ?
2) Il apparaît la souris "Système" : pourquoi il n'y a aucun effet lorsque je clique sur le X au milieu de l'écran ?
3) Comment faire pour pouvoir fermer le programme avec la souris "système" mais pouvoir gérer mon jeu avec ma propre souris définie en Sprite ?
Merci de votre aide.
Code : Tout sélectionner
#SourisPointe=1 ; Pointe de la souris
#SourisCorps=2 ; Reste de la souris
#bouton_X=3
#jaune=$99FFFF
#Repertoire = "Ressources\"
#FenetrePrincipale=0
#LargeurEcranJeu=1366
#HauteurEcranJeu=768
If InitSprite()=0 : MessageRequester("Erreur", "InitSprite() non initialisé !"):End:EndIf
If InitMouse()=0 : MessageRequester("Erreur", "InitMouse() non initialisé !"):End:EndIf
If InitKeyboard()=0 : MessageRequester("Erreur", "InitKeyboard() non initialisé !"):End:EndIf
If InitSound() = 0 : MessageRequester("Erreur", "InitSound() non initialisé !"):End:EndIf
If InitMovie() = 0 : MessageRequester("Erreur", "InitMovie() non initialisé !"):End:EndIf
ExamineDesktops()
LargeurBureau=DesktopWidth(0)
HauteurBureau=DesktopHeight(0)
; Vérifier si l'ordi dispose de la résolution minimale pour le jeu
If LargeurBureau<#LargeurEcranJeu Or HauteurBureau<#HauteurEcranJeu
MessageRequester("Erreur", "L'ordinateur doit avoir une résolution minimale de "+Str(#LargeurEcranJeu)+ " par "+Str(#HauteurEcranJeu)+ " pixels !")
End
EndIf
; Création de la fenêtre principale
If OpenWindow(#FenetrePrincipale,0,0,#LargeurEcranJeu,#HauteurEcranJeu,"test", #PB_Window_MinimizeGadget)=0
MessageRequester("Erreur", "Impossible d'ouvrir la fenêtre principale")
End
EndIf
; Création de la fenêtre du jeu
If OpenWindowedScreen(WindowID(#FenetrePrincipale),0,0,#LargeurEcranJeu,#HauteurEcranJeu,1,0,0)=0
MessageRequester("Erreur", "Impossible d'ouvrir la fenêtre de jeu")
End
EndIf
ResizeWindow(#FenetrePrincipale,0,0,LargeurBureau,HauteurBureau)
LoadSprite(#SourisPointe, #Repertoire+"SourisPointe.bmp", #PB_Sprite_PixelCollision)
LoadSprite(#SourisCorps, #Repertoire+"SourisCorps.bmp", #PB_Sprite_PixelCollision)
LoadSprite(#bouton_X, #Repertoire+"bouton_X.bmp", #PB_Sprite_PixelCollision)
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
ClearScreen(#jaune)
DisplayTransparentSprite(#bouton_X, 600,300)
DisplayTransparentSprite(#SourisPointe, MouseX(),MouseY())
DisplayTransparentSprite(#SourisCorps, MouseX(),MouseY()+6)
If SpritePixelCollision(#SourisCorps,MouseX(),MouseY()+6,#bouton_X,600,300) And MouseButton(#PB_MouseButton_Left)
ExamineMouse()
While MouseButton(#PB_MouseButton_Left)
ExamineMouse()
Delay(1)
Wend
End
EndIf
FlipBuffers()
Until Event = #PB_Event_CloseWindow
