Seulement voilà, faire apparaitre le menu utilise la bibliotheque Keyboard, tandis que le faire disparaitre utilise un MenuEvent.
Je n'ai pas de problème pour afficher le menu mais quand je veux le fermer avec escape, il revient tout de suite car Keyboard.Pushed détecte la touche toujours pressée.
Cela correspond à cette portion de mon code (pour le moment il y a juste un menu et un sprite qui peut bouger):
Code : Tout sélectionner
Menu:
Menu:
ToggleMenu()
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow : End
      Case #PB_Event_Gadget : Select EventGadget()
        Case 1 : Goto GameLoop
        Case 2 : Goto GameLoop
        Case 3 : End
      EndSelect
      Case #PB_Event_Menu : Select EventMenu()
        Case 1 : Goto GameLoop
        Case 2 : Goto GameLoop
        Case 3 : End
      EndSelect
  EndSelect
ForEver
GameLoop:
ToggleMenu()
Repeat
  FlipBuffers()
  ClearScreen(RGB(0, 0, 0))
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) : Goto Menu : EndIf
  If KeyboardPushed(#PB_Key_Up)     : y - speed : EndIf
  If KeyboardPushed(#PB_Key_Down)   : y + speed : EndIf
  If KeyboardPushed(#PB_Key_Left)   : x - speed : EndIf
  If KeyboardPushed(#PB_Key_Right)  : x + speed : EndIf
  Start3D() : ZoomSprite3D(0, 128, 128) : DisplaySprite3D(0, x, y) : Stop3D()
ForEver
Tout à fait autre chose, mais mon jeu (fenêtré) supporte très mal les mises en réduction, redimensionnements et déplacements. Il y a quelque chose que je peux faire pour ça ?
Edit : Comme d'habitude, il suffit que je poste un message pour trouver la solution à un problème que me bloque depuis des heures (grrr, deuxième fois aujourd'hui quand même).
Il suffit de remplacer
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Escape) : Goto Menu : EndIfCode : Tout sélectionner
If WindowEvent() = #PB_Event_Menu And EventMenu() = 2 : Goto Menu : EndIf