Page 1 sur 1

[résolu] Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 16:22
par blendman
salut

J'ai un code qui fonctionne en mode fenêtre et pas en fullscreen, savez-vous pourquoi ?

Code : Tout sélectionner

#MainWindow =0
#fullscreen = 1
InitSprite()
InitKeyboard()

If OpenWindow(#MainWindow,0,0,800,600,"3Arks",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
  If OpenWindowedScreen(WindowID(#MainWindow),0,0,800,800,0,0,0,#PB_Screen_SmartSynchronization)
  EndIf
EndIf

Repeat
  delay +1
  Delay(10)
  ClearScreen(RGB(125,125,125))
  StartDrawing(ScreenOutput())
  DrawText(100,100,"1er écran : "+Str(delay))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) Or e =#PB_Event_CloseWindow Or delay >=150

CloseWindow(#MainWindow)
Delay(1000)

If #fullscreen = 0
  flag = #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget
  If OpenWindow(#MainWindow,150,150,800,600,"3arks",flag);
    If OpenWindowedScreen(WindowID(#MainWindow),0,0,800,600,0,0,0,#PB_Screen_SmartSynchronization)
    EndIf
  EndIf
Else
  If OpenScreen(800,600,32,"3arks",#PB_Screen_SmartSynchronization)
  EndIf
EndIf

Repeat
  If #fullscreen = 0
    e=WaitWindowEvent()
  EndIf
  Delay(2)
  ClearScreen(RGB(125,125,125))
  StartDrawing(ScreenOutput())
  DrawText(100,100,"Ecran jeu")
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
  delay+1
Until KeyboardPushed(#PB_Key_Escape) Or e =#PB_Event_CloseWindow Or delay >= 1200
End
Merci beaucoup pour vos réponses, ça m'empêche de mettre notre jeu 3arks en mode Fullscreen ^^

Re: Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 18:01
par Cool Dji
bizarre ?

Sinon, si tu veux mettre plusieurs type d'écran (Menu, Game, HighScore...), je te propose une technique.
Tu peux créer un seul openwindow et dans la boucle principale tu pointes vers la procédure propre à chaque type d'écran

Code : Tout sélectionner

Mode = 0  ; mode=0 (menu), mode=1 (game)...

Repeat

  if mode=0 : Menu() : endif
  if mode=1 : Game() : endif
  if mode=2 : HighScore() : endif

  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) Or e =#PB_Event_CloseWindow Or delay >=150


Re: Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 18:08
par blendman
Cool Dji a écrit :bizarre ?

Sinon, si tu veux mettre plusieurs type d'écran (Menu, Game, HighScore...), je te propose une technique.
Tu peux créer un seul openwindow et dans la boucle principale tu pointes vers la procédure propre à chaque type d'écran

Code : Tout sélectionner

Mode = 0  ; mode=0 (menu), mode=1 (game)...

Repeat

  if mode=0 : Menu() : endif
  if mode=1 : Game() : endif
  if mode=2 : HighScore() : endif

  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) Or e =#PB_Event_CloseWindow Or delay >=150

comme dit Monica de Friends "I knoooooooooowwww " :mrgreen:

Mais en fait, sur 3arks, il y a bien 2 windows distinctes (ou 1window/1 écran) :
- une pour se loguer, avec sa résolution (800*600)
- et une autre pour le jeu, avec la résolution qu'on veut

Donc, j'ai besoin de fermer la fenêtre pour ouvrir un screen en plein écran, mais là, ça bug totalement :(

je ne peux donc pas utiliser de resizewindow, car en fullscreen, j'ai bien 1 fenêtre, puis un screen...

Re: Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 18:41
par case
ça marche vachement bien ton code a partir du moment ou...


tu utilise la commande ...



CloseScreen()

Syntaxe

CloseScreen()
Description

Ferme l'écran courant. Ceci permet à une application de passer du mode plein écran au mode fenêtré dynamiquement. Après avoir changé d'écran, tous les sprites doivent être rechargés.
enfin je dis ça, je dis rien moi , je lis juste la doc :p

Re: Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 19:04
par Cool Dji
Yes :D

J'ai eu l'espace d'un instant un doute sur la possibilité de faire deux openscreen à la suite mais à aucun moment je n'ai pensé que la fonction closescreen pouvait exister...

En revanche, un peu dommage l'histoire d'être obligé de recharger tous les sprites.

Re: Problème avec Openscreen() en fullscreen

Publié : ven. 08/juin/2012 19:26
par case
en général on charge pas tout les sprites pour le login :)

Re: Problème avec Openscreen() en fullscreen

Publié : sam. 09/juin/2012 14:10
par blendman
rah case... Je suis un boulet sur ce coup-là... j'ai les boules, j'aurai du trouver tout seul, j'y ai même pas pensé. :oops:

Merci encore une fois, CASE !!!