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 : EndIf
Code : Tout sélectionner
If WindowEvent() = #PB_Event_Menu And EventMenu() = 2 : Goto Menu : EndIf