Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-29%
Le deal à ne pas rater :
DYSON V8 Origin – Aspirateur balai sans fil
269.99 € 379.99 €
Voir le deal

 

 Fermer GUI pause/save/quit

Aller en bas 
4 participants
AuteurMessage
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Fermer GUI pause/save/quit Empty
MessageSujet: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 13:57

Bonjour à tous,

Je reviens vous embêter avec mes questions bêtes de grande débutante sourire Je suis toujours sur un template BASS (2clicks) et j'en suis à custom l'interface langue (Plus ça va, plus je me dis que vous avez raison et que j'aurais du partir sur du Empty mais étant très novice et travaillant sur un projet à 3 personnes, je devais trouver une solution rapide... le prochain sera sans template promis langue)

Je souhaiterai donc faire un menu qui fasse à la fois Pause, save et quit. Je me débrouille pas trop mal sur la création de la GUI en elle même et des boutons mais je n'ai pas réussi à trouver comment faire pour que ce menu soit lié à la touche espace pour l'ouvrir ET aussi pour le fermer.

Pour le moment mon "system key" ressemble à ça. Le menu s'ouvre correctement en appuyant comme prévu sur espace mais ne se ferme pas (forcement) par contre je lui ai demandé aussi de ne pas rendre l'inventaire visible en même temps et pourtant l'inventaire s'obtine à s'ouvrir derrière le menu pause si mon curseur touche le top edge de l'écran.

D'avance merci. Force et café^^

Code:
 // "System Keys"
  if (keycode == eKeyCtrlQ) QuitGame(1); // Ctrl-Q
  if (keycode == eKeyF9) RestartGame(); // F9
  if (keycode == eKeyF12) SaveScreenShot("scrnshot.pcx");  // F12
  if (keycode == eKeySpace)
      gPause.Visible = true;
      gInventoryBar.Visible = false;

Petit teaser pour les curieux langue

Fermer GUI pause/save/quit Teaser12
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 17:14

J'aime bien le style graphique !

Lorsque tu n'utilises pas les accolades { }, les if, else if et else ne concerne que la commande qui précède le prochain point-virgule ; donc dans le code que tu as posté, la ligne 7 n'est pas interprétée dans la portée du if. Le résultat c'est que la ligne est exécutée à chaque fois qu'on appuie sur n'importe quelle touche.

En ce qui conerne l'alternance affichage/masquage lors de l'appui sur espace, tu peux utiliser une petite astuce à propos des booléens qui consiste à inverser la valeur à chaque appui sur espace plutôt qu'à donner une valeur constante comme tu le fais maintenant. Ça donnerait quelque chose comme ça :
Code:
if (keycode == eKeySpace) {
   gPause.Visible = !gPause.Visible;
   gInventoryBar.Visible = !gPause.Visible;
}

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 18:09

Coucou Kitai, tu vas bien ?

J'ai fait comme tu m'as dit mais l'inventaire continue à apparaître en arrière plan du menu quand mon curseur touche le haut de l'écran et le menu ne se ferme pas en appuyant de nouveau sur espace :'(

Merci sourire On a une concept artist très talentueuse.
Revenir en haut Aller en bas
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 20:31

Ah tiens j'avais jamais pensé à cette astuce, @Kitai, c'est pas mal ça.

@CookiewooD, dans les options de ton gInventoryBar. Tu dois avoir une option "visible quand il est survolé par le curseur" (ou quelque chose comme ça, je ne sais plus comment c'est écrit) activée. Ou alors c'est dans le repeatedly_execute. Quoi qu'il en soit, l'inventaire n'est masqué qu'à l'instant où tu appuies sur espace, si une autre commande le rend visible entre deux, il réapparaîtra même si tu n'as pas fermé le menu. Il va donc falloir coder ça un peu différemment.
La fonction PauseGame sera surement utile (parce que là rien ne dit que le jeu est en pause, ça dit seulement que tu joue sur la visibilité de deux interfaces). Edit : En fait non, cf mon message suivant.

Pour le fait que le menu ne se ferme pas en appuyant de nouveau sur espace, quelque chose doit bloquer mais là il manque quelques informations je n'ai pas trop d'idée.

Il faudrait qu'on en voit plus sur le code, mais je ne sais pas trop où, peut-être la fonction "on_key_press" dans son ensemble ou éventuellement "repeatedly_execute".

_________________
Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.


Dernière édition par valoulef le Sam 22 Sep 2018 - 22:22, édité 3 fois
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 21:25

Sympa le screenshot, j'ai hâte sourire

Perso, pour ton menu, moi j'utiliserais un truc comme ça dans le Repeadedly_execute :

if (keycode = eKeySpace){
if (gPause.Visible == true){
gPause.Visible = false;
}
else {
gPause.Visible = true;
}
}
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptySam 22 Sep 2018 - 21:46

Ok alors je suis allé voir à quoi ressemblait le template en question (je n'avais plus AGS sur mon pc). En ce qui concerne ton premier problème c'est effectivement dans le repeatedly_execute du script "TwoClickHandler" :

Code:

function repeatedly_execute()
{
 if (!gInventoryBar.Visible && mouse.y <= INVENTORY_POPUP_POSITION)
 {
 gInventoryBar.Visible = true;
 }

Ce que ça dit c'est que quand la coordonnée y de la souris sera inférieure ou égale à la valeur de INVENTORY_POPUP_POSITION (par défaut définie sur 7 dans le header) alors l'inventaire devient visible.

Pour le fait que le menu ne disparaît pas quand tu appuies à nouveau sur la touche Espace, cela doit venir d'ici, au début de la fonction on_key_press du GlobalScript :

Code:
function on_key_press(eKeyCode keycode)
{
  if (IsGamePaused()) keycode = 0;

Là en gros ça désactive le clavier quand le jeu est en pause. J'en déduis donc que tu as du régler ton GUI sur "Pause Game when shown" (j'avais oublié cette possibilité).

La solution : Dans le repeatedly_execute du premier script ("TwoClickHandler"), tu peux ajouter ça au tout début :

Code:
function repeatedly_execute()
{
  if (IsGamePaused()){
  }
  
  return;

En faisant ça, tout ce que tu mettras à l'intérieur de cette fonction sera exécuté :
- Que le jeu soit en pause ou non pour tout ce que tu mettras au dessus de cette condition.
- Si et seulement si le jeu est en pause pour tout ce que tu mettras entre les accolades de cette condition.
- Si et seulement si le jeu n'est pas en pause pour tout ce qui se trouve en dessous de "return;" (les lignes pré-codées, donc).

Ainsi, la commande rendant l'inventaire visible étant placée en dessous de ce "return;", elle ne sera plus appelée lorsque tu seras dans le menu pause et l'inventaire ne s'affichera donc plus.

Ensuite tu peux faire pareil en modifiant légèrement la fonction on_key_press du GlobalScript comme suit :

Code:
function on_key_press(eKeyCode keycode)
{
  if (keycode == eKeySpace){
    if (gPause.Visible) gPause.Visible = false;
    else {
       gInventoryBar.Visible = false;
       gPause.Visible = true;
    }
  }
  
  if (IsGamePaused()) {
    //remplace "keycode = 0" par ces accolades
  }
  
  return;
//Les commandes par défaut sont à laisser en dessous

De cette manière, comme vu précédemment, ton code devrait s'exécuter que le jeu soit en pause ou non, tout en laissant les autres touches ne fonctionner que si le jeu n'est pas en pause.
Edit : J'ai modifié la proposition de @Kitai après coup, car je me suis rendu compte qu'en l'état, la barre d'inventaire risquait d'apparaître une fraction de seconde sans raison valable au moment où le joueur quitte la pause, ce qui n'aurait pas fait très propre.

C'est vrai que le piège avec les templates, c'est que ça peut être tentant quand on débute pour se faciliter la tâche, mais le problème c'est que dès que l'on veut un tant soit peu personnaliser le moteur, on entre en conflit avec tout ce qui a été programmé par quelqu'un avant et qu'il n'est pas forcément aisé de déchiffrer. Surtout ici où le code est réparti sur deux scripts. Après ça peut être aussi une source d'inspiration de se pencher sur la manière dont le template à été programmé...

Bref, j'espère avoir été assez clair, n'hésite pas à nous dire ce que ça donne. sourire

_________________
Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
Revenir en haut Aller en bas
CookiewooD
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
CookiewooD


Nombre de messages : 54

Age : 35

Localisation : Gard

Date d'inscription : 18/09/2018


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptyDim 23 Sep 2018 - 8:38

Woooooot ! Merci les gars, j'ai fait un mélange des conseils de Shai-La et de Valoulef et ça marche au tooooooop (et en n'ajoutant que 7 lignes! 5 dans le globalscript et 2 dans le 2clicks handler) sourire

Merci merci merci Fermer GUI pause/save/quit 1181541269 <3
Revenir en haut Aller en bas
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit EmptyDim 23 Sep 2018 - 11:27

Bravooo ! Fermer GUI pause/save/quit 114419
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Contenu sponsorisé





Fermer GUI pause/save/quit Empty
MessageSujet: Re: Fermer GUI pause/save/quit   Fermer GUI pause/save/quit Empty

Revenir en haut Aller en bas
 
Fermer GUI pause/save/quit
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Save screenshort in save game
» auto-save
» Ajout de la date & heure sur une save !
» DISPLAY : le jeu se met en pause
» animé des personnages sans mettre le jeux en pause

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: