je cherche, je cherche, mais j'ai completement oublié comment s'appelais l'instruction pour passer mon jeu sous win avec ALT+TAB, puis revenir au jeu sans qu'il plante.......
je l'ai lu dans la notice mais je sais pu ou !!



Je pense que c'est ce que tu cherche, mais elle fonctionne pas toute seulleIsScreenActive()
Syntaxe
Resultat = IsScreenActive()
Description
Les jeux et les applications en mode plein écran programmés en PureBasic fonctionnent toujours en mode multitâche, pour éviter de bloquer tout le système (que ce soit sur AmigaOS, Windows ou Linux). En d'autre termes, l'utilisateur peut à tout moment revenir sur son bureau pour faire autre chose. Si c'est le cas cette commande renverra 0, indiquant au programmeur de prendre les mesures nécessaires (libérer le clavier et la souris, arrêter les sons et les musiques, mettre le jeu en pause etc...) Cette commande doit être obligatoirement placée après FlipBuffers().
OS Supportés
Tous
Code : Tout sélectionner
While IsScreenActive()=0
Delay(100);ce qui evite les lags
Wend
Et bin ,c'est ce que je fais ?!! :G-Rom a écrit :Si IsScreenActive() = 0
alors tu n'affiches plus rien à l'écran , via un flag , tu stoppe le FlipBuffers() aussi.
Code : Tout sélectionner
While IsScreenActive()=0
Delay(100);ce qui evite les lags
Wend
j'ai pas dis le contraireSPH a écrit :Et bin ,c'est ce que je fais ?!! :G-Rom a écrit :Si IsScreenActive() = 0
alors tu n'affiches plus rien à l'écran , via un flag , tu stoppe le FlipBuffers() aussi.Code : Tout sélectionner
While IsScreenActive()=0 Delay(100);ce qui evite les lags Wend
Le clavier n'a pas besoin d'être libéré (et puis il n'y a pas de commandes pour...). Quand ton ecran n'a pas le "focus" n'utilise plus ExamineMouse/ExamineKeyboard.ReleaseMouse()
Syntaxe
Resultat = ReleaseMouse(Etat)
Description
Capture ou libère la souris pour rendre son usage possible dans le système d'exploitation. On utilise typiquement cette fonction après avoir vérifié le résultat de la commande IsScreenActive(). Si 'Etat' = 1, la souris est libérée, sinon la souris est capturée par le programme PureBasic.
OS Supportés
Tous
Code : Tout sélectionner
If IsScreenActive()=0
ReleaseMouse(1)
While IsScreenActive()=0
Delay(100)
Wend
ReleaseMouse(0)
EndIf
Code : Tout sélectionner
If IsScreenActive()=0
ReleaseMouse(1)
While IsScreenActive()=0
Delay(100)
Wend
ReleaseMouse(0)
EndIf
Code : Tout sélectionner
If IsScreenActive()=0
ReleaseMouse(1)
...
ReleaseMouse(0)
EndIf
Code : Tout sélectionner
InitSprite() : InitKeyboard() : InitMouse()
ExamineDesktops()
OpenWindow(0,0,0,DesktopWidth(0),DesktopHeight(0),"")
OpenWindowedScreen(WindowID(0),0,0,DesktopWidth(0),DesktopHeight(0),1,0,0)
; OpenScreen(DesktopWidth(0),DesktopHeight(0),DesktopDepth(0),"")
FlipBuffers()
Repeat
If IsScreenActive()
ExamineKeyboard()
ExamineMouse()
;AFFICHAGE
FlipBuffers()
Else
Delay(100)
EndIf
ForEver
Code : Tout sélectionner
InitSprite()
InitMouse()
InitKeyboard()
OpenScreen(1024, 768, 32, "Fullscreen + ALT-TAB démo")
CreateSprite(0, 64, 64)
StartDrawing(SpriteOutput(0))
Line( 0, 0, 48, 32,$0FF0FF)
Line( 0, 0, 64, 64,$0FF0FF)
Line( 0, 0, 32, 48,$0FF0FF)
StopDrawing()
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(0)
DisplayTransparentSprite(0, MouseX(), MouseY())
FlipBuffers()
If IsScreenActive() = 0
ReleaseMouse(1)
Repeat
While PeekMessage_(msg.MSG, 0, 0, 0, #PM_REMOVE)
TranslateMessage_(msg)
DispatchMessage_(msg)
Wend
Delay(100)
Until IsScreenActive() <> 0
CloseScreen()
Delay(1000)
OpenScreen(1024, 768, 32, "Fullscreen + ALT-TAB démo")
ReleaseMouse(0)
CreateSprite(0, 64,64)
StartDrawing(SpriteOutput(0))
Line( 0, 0, 48, 32, $0FF0FF)
Line( 0, 0, 64, 64, $0FF0FF)
Line( 0, 0, 32, 48, $0FF0FF)
StopDrawing()
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Code : Tout sélectionner
While PeekMessage_(msg.MSG, 0, 0, 0, #PM_REMOVE)
TranslateMessage_(msg)
DispatchMessage_(msg)
Wend