| | Menu de pause | |
| | Auteur | Message |
---|
ttgc Débutant
Messages : 14 Localisation : Royaume d'Hyrule Projet Actuel : Inside The World
Jeu de plateforme 2D
https://cbna.forumactif.com/t12425-inside-the-world-jeu-de-plateforme-2d
| Sujet: Menu de pause Mar 23 Juil 2013 - 11:04 | |
| bonjour, Voici donc un script pour un menu de pause. - Code:
-
/*************************************************** Script de menu de pause intitialisation des arguments argument0 = texte affichée pour dire que le jeu est en pause argument1 = texte expliquant la commande à réaliser pour reprendre le jeu argument2 = texte expliquant la commande à réaliser pour quitter le jeu argument3 = mode d'affichage de l'arrière plan (true = étiré) ***************************************************/ pausetxt = argument0; stoppause = argument1; endtxt = argument2; streching = argument3;
// affichage du menu de pause if streching = true { draw_background_stretched(pause_back,0,0,640,480); } else { draw_background_tiled(pause_back,0,0); } instance_deactivate_all(true); draw_set_halign(fa_center); draw_set_valign(fa_middle); draw_set_font(font_opening); draw_set_color(c_white); draw_text(320,240,pausetxt); draw_text(320,340,stoppause); draw_set_font(font_normal); draw_text(320,385,endtxt); draw_set_color(c_black); draw_set_valign(fa_top); draw_set_halign(fa_left);
Changez les nom de font et background ainsi que la couleur Gestion du menu : créez un objet invisible et permanent afin de gérer le script, voici les différents réglage d'event : create > execute code - Code:
-
global.pause = false; draw > execute code - Code:
-
if global.pause = true { pause_menu("PAUSE","Appuyez sur entree pour continuer a jouer","Appuyez sur F2 pour retourner au menu principal") }
key press (la touche pour mettre le jeu en pause) > execute code - Code:
-
global.pause = true; key press (la touche pour reprendre le jeu) > execute code - Code:
-
global.pause = false; instance_activate_all();
key press (la touche pour quitter le jeu) > execute code - Code:
-
returnmenu = 0 if global.pause = true { returnmenu = show_question("Voulez vous vraiment retourner au menu principal ?") if returnmenu = true { game_restart(); } }
à noter que pour ce dernier code vous pouvez changer la fonction show_question par une fonction game_end() directement ou game_restart() ou même pour affihce vos propres choix de réponses par show_message_ext(str,but1,bu2,but3) |
| | | Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 13:58 | |
| Bah le problème avec ce genre de script, c'est que c'est pas vraiment modulable. Quelqu'un qui veut faire son menu de pause voudra le faire à sa sauce, et c'est plus facile de commencer de rien qu'avec un truc du genre. Surtout que les gens préfèrent en général un menu avec des boutons (donc à la souris) ; et pour faire plus propre, le mieux, c'est de faire tout en un script, sans utiliser d'objet spécifique. Bon, j'ai fait beaucoup de reproches, mais bon, tu sais utiliser le gml correctement, t'écrit de manière lisible et tu viens pas direct poser 50 questions à la con, ce qui est déjà pas mal Bref, donc voilà, bienvenue sur le forum, ce serait cool qu'il y ai plus de membres dans ton genre _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
| | | GrandeLangue Bonne participation
Messages : 77 Localisation : Lille Projet Actuel : Faire des maths
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 15:40 | |
| Je suis d'accord avec ce qu'a dit Térence. De plus, la désactivation de toutes les instances, juste pour un menu pause, ne me semble pas être une bonne idée. Il suffit de bloquer le jeu avec une boucle while(true), et d'y revenir si tu utilises le clavier ou la souris. Ce qui permettrait ainsi par exemple de laisser le menu pause en transparence pour voir où on en est dans le jeu ou pour faire des screenshots. En tout cas, bienvenue ! Tu peux te présenter ici Présentations des nouveaux membres |
| | | Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 15:45 | |
| - GrandeLangue a écrit:
- De plus, la désactivation de toutes les instances, juste pour un menu pause, ne me semble pas être une bonne idée.
Il suffit de bloquer le jeu avec une boucle while(true), et d'y revenir si tu utilises le clavier ou la souris. Ce qui permettrait ainsi par exemple de laisser le menu pause en transparence pour voir où on en est dans le jeu ou pour faire des screenshots. Moi je suis pas d'accord avec toi là Avec une boucle infinie, le jeu va frizzer, puis tu pourra pas faire d'effet de hover par exemple. Si tu veux avoir un menu semi-transparent, faut prendre un screenshot, désactiver les instances, puis afficher ton screenshot en background. C'est la technique que j'utilise pour mon jeu, et ca marche impec' _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
| | | GrandeLangue Bonne participation
Messages : 77 Localisation : Lille Projet Actuel : Faire des maths
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 16:56 | |
| Si c'est un menu pause comme celui qu'il propose sans aucune animation, ma méthode fonctionne, mais c'est vrai que c'est pas un menu très vivant ^^ (mais bon je n'ai jamais été difficile sur mes menus pause). |
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 17:37 | |
| Oui enfin une boucle infini consomme beaucoup de processeur, hors mettre un jeu en pause en général c'est pour pouvoir faire un truc a coté. Après en utilisant des sleeps et io_handle dans la boucle ça peut être viable, mais j'ai pas testé (car sous GM6 boucle => freeze => aucune action possible, mais sous GM>=7 io_handle() permet de récupérer les events clavier/souris même dans une boucle infinis). Y a keyboard_wait() qui permet de bloquer le jeu sinon, et qui est très simple d'utilisation. |
| | | ttgc Débutant
Messages : 14 Localisation : Royaume d'Hyrule Projet Actuel : Inside The World
Jeu de plateforme 2D
https://cbna.forumactif.com/t12425-inside-the-world-jeu-de-plateforme-2d
| Sujet: Re: Menu de pause Mar 23 Juil 2013 - 18:27 | |
| merci de votre accueil ! je sais très bien que mon script est basic mais c'est plus simple à utiliser, après ça n'empêche pas qu'avec un minimum de connaissance en GML on peut améliorer le script, et chacun peut le tourner différemment voilà pourquoi j'ai voulu le laisser assez basic.
Le coup de la boucle moi je suis pas fan, perso les boucles c'est pas que je les aimes pas mais ça utilise énormément le processeur et le fait de tout désactiver permet quand même de libérer le processeur, après c'est mon avis !
Pour finir, je tiens à préciser que ce script fut mon premier (il était pas aussi développé mais je l'ai améliorer au fur et à mesure) |
| | | Contenu sponsorisé
| Sujet: Re: Menu de pause | |
| |
| | | | Menu de pause | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |