Lorsqu'on utilise le screen et examinemouse(), la souris est bloquée dans le screen (pas glup).
Du coup, pour éviter ça, on peut utiliser cette technique :
Code : Tout sélectionner
;{ init
If InitSprite() <> 0: EndIf
If InitKeyboard() <> 0: EndIf
If InitMouse() <> 0: EndIf
;}
flag = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget
If OpenWindow(0,0,0,800,600, "menu jeu", Flag) <> 0
If OpenWindowedScreen(WindowID(0), 0,0,600,400,1,0,0) <> 0
ScreenW = ScreenWidth()
ScreenH = ScreenHeight()
WinW = WindowWidth(0)
WinH = WindowHeight(0)
EndIf
ShowCursor_(1)
EndIf
Repeat
Repeat
EventID = WaitWindowEvent(1)
Select EventID
Case #PB_Event_CloseWindow
End
EndSelect
Until event = 0
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
EndIf
; en décommentant ces lignes, ça ne résoud pas le soucis
; screenW = WinW
; screenH = WinH
If ExamineMouse()
mx = MouseX()
my = MouseY()
If MouseButton(#PB_MouseButton_Left)
clic = 1
Else
clic = 0
EndIf
If InScreen = 1
If WindowMouseX(0)> ScreenW-2 Or WindowMouseX(0)<1 Or WindowMouseY(0)<1 Or WindowMouseY(0)>ScreenH-2
ReleaseMouse(1)
InScreen = 0
EndIf
EndIf
EndIf
If InScreen = 0
If WindowMouseX(0)>=1 And WindowMouseX(0)<=ScreenW-2 And WindowMouseY(0)>=1 And WindowMouseY(0)<=ScreenH-2
InScreen = 1
ReleaseMouse(0)
MouseLocate(WindowMouseX(0),WindowMouseY(0))
EndIf
EndIf
If StartDrawing(ScreenOutput())
DrawText(0,0,"Allez au delà de 600 X 400 et la souris ne réagit plus")
DrawText(0,20,Str(mx)+"/"+Str(my))
DrawText(0,40,"Clic : "+Str(clic))
StopDrawing()
EndIf
FlipBuffers()
ClearScreen(RGB(200,200,200))
Until Quit = 1
D'où ma question :
savez-vous comment on gère ça avec un écran plus petit que la fenêtre et l'auto-redimensionnement de l'écran ?
Merci
