| [résolu]Display au survol d'un bouton de GUI | |
|
|
Auteur | Message |
---|
Pierrec Adepte de la Grande Tasse Bleue
Nombre de messages : 99
Date d'inscription : 16/06/2011
| Sujet: [résolu]Display au survol d'un bouton de GUI Jeu 12 Déc 2013 - 23:50 | |
| Bonjour à vous Me revoici avec un nouveau problème bien ridicule. Je souhaite simplement afficher un teste au survol d'un bouton de GUI. En l'occurence, il s'agit d'une carte avec des zones. Je passe mon curseur sur la Prairie, hop, "Ceci est la prairie" apparait. Je sors mon curseur de la prairie, il disparait. Grâce aux diverses réponses sur ce forum, j'ai déjà effectué 90% du boulot, mais il me reste un tout petit problème : Je ne parviens pas à faire disparaitre le texte lorsque le curseur sort du bouton. J'ai cru être malin en simulant un clic lorsqu'il est dehors, mais comme ça ne clique sur rien, on dirait que ça ne marche pas. voici ce que j'ai : - Code:
-
function repeatedly_execute() { if (gMap.Visible==true) { GUIControl*button=GUIControl.GetAtScreenXY(mouse.x,mouse.y); if (button==bMeadow) { Display("Ceci est la Prairie"); }
if(GetLocationType(mouse.x, mouse.y)==eLocationNothing){ XXX
} } }
Ce qu'il me manque, c'est donc la commande remplaçant les XXX, celle arrêterait tout simplement le display. J'ai essayé ProcessClick(mouse.x,mouse.y, mouse.Mode); et pas mal d'autre choses sans résultat. J'ai aussi essayé de disséquer le module RollOver d'Astaroth, mais je n'ai pas trouvé ma réponse. Il doit pourtant bien y avoir une commande toute simple pour dire "Arrête tout display en cours" non ? |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 0:48 | |
| La commande Display ici ne me parait pas très appropriée : - Citation :
- NOTE : Display est une fonction bloquante - cela signifie que l'exécution du script sera mise en pause jusqu'à ce que le joueur ait fait disparaître la fenêtre de texte (en appuyant sur une touche ou sur la souris). Tant que la fenêtre est affichée, tous les autres processus, comme les animations et l'affiche des interfaces, seront suspendus.
Autrement dit, la fonction repeatedly_execute n'est pas appelée tant que le texte est affiché. Peut-être que passer par repeatedly_execute_always pourrait-être une solution, mais le plus efficace serait encore d'utiliser une étiquette (ou un label si tu préfère). En gros, tu crées un Gui qui peut-être invisible par défaut et tu fais quelque chose comme ça : - Code:
-
function repeatedly_execute() { if (gMap.Visible==true) { GUIControl*button=GUIControl.GetAtScreenXY(mouse.x,mouse.y); if (button==bMeadow) { gLocalisation.Visible = true; //Le Gui que tu auras créé etiquetteLocalisation.Text = "Ceci est la Prairie"; //L'étiquette que tu auras ajoutée au Gui } else { gLocalisation.Visible = false; etiquetteLocalisation.Text = ""; } } } Je n'ai pas testé le code, et je suis fatigué vu l'heure donc je ne suis pas à l'abri d'une erreur de détail mais en gros ça devrait fonctionner. Cette méthode ne présente aucun inconvénient (à mon avis) par rapport à la commande Display, étant donné que tu peux lui donner la même apparence, et le placer au même endroit. _________________ 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.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 10:03 | |
| Je rejoins le conseil de valoulef. Le code me semble bon également ( apparemment il y a un bug avec mon colorateur syntaxique par contre... EDIT : c'est réparé), à part peut-être que la disparition de l'interface-étiquette est trop restreinte : on ne l'efface que si gMap est toujours visible, mais peut-être voudrait-on aussi pouvoir l'effacer dès que gMap disparaît. On aurait alors : - Code:
-
function repeatedly_execute() {
// Le bouton survolé par la souris GUIControl *button = GUIControl.GetAtScreenXY(mouse.x,mouse.y);
// Si gMap est affiché et si on survole bMeadow if (gMap.Visible==true && button != null && button == bMeadow) { etiquetteLocalisation.Text = "Ceci est la Prairie"; // Définition du texte gLocalisation.Visible = true; // Affichage du gui-étiquette } // Sinon, si le gui-étiquette est toujours affiché, on l'efface else if (gLocalisation.Visbile) { gLocalisation.Visible = false; // Effacement du gui-étiquette etiquetteLocalisation.Text = ""; // Effacement du texte } } valoulef je vois aussi que tu as mis la commande Display en italique, je rappelle qu'en surlignant une commande et en appuyant sur Ctrl+Y on insère directement un lien vers l'aide (comme je viens de le faire). Enfin Pierrec je peux te renvoyer vers mon module InfoBulles dont le but est justement d'afficher du texte au survol d'un élément d'interface. _________________ 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 ! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 11:25 | |
| - Kitai a écrit:
- la disparition de l'interface-étiquette est trop restreinte : on ne l'efface que si gMap est toujours visible, mais peut-être voudrait-on aussi pouvoir l'effacer dès que gMap disparaît.
Effectivement, bien vu. Ça m'aurait étonné de ne rien oublié à cette heure là ! - Kitai a écrit:
- valoulef je vois aussi que tu as mis la commande Display en italique, je rappelle qu'en surlignant une commande et en appuyant sur Ctrl+Y on insère directement un lien vers l'aide (comme je viens de le faire).
Ah mais dis donc, c'est génial ça je ne savais même pas ! J'ai du passer à côté de l'info. Je crois que dans la logique de ce qu'on est en train de mettre en place, un petit mode d'emploi pour les commandes spécifiques du forum pourrait être bien utile (je m'en chargerai). - Kitai a écrit:
- EDIT : c'est réparé
Oui mais j'ai l'impression qu'il y a un problème avec les citations maintenant. Et tiens d'ailleurs les couleurs ont à nouveau disparu _________________ 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 Ven 13 Déc 2013 - 12:41, édité 1 fois |
|
| |
Pierrec Adepte de la Grande Tasse Bleue
Nombre de messages : 99
Date d'inscription : 16/06/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 12:40 | |
| Merci pour vos réponses aussi rapides! Il faut donc que j'abandonne Display...Dommage, je m'étais fait un super GUI custom! Malheureusement, comme je suis un peu nul, je n'arrive à faire marcher aucune des deux solutions. La première me renvoie une erreur sur etiquetteLocalisation.Text (faut peut-être que je définisse ça quelque part avant ? ça se définit comment ? il n'y a pas etiquetteLocalisation dans l'aide) Quant au module, il a l'air juste PARFAIT mais, lui non plus ne m'affiche rien j'ai mis mon problème dans le topic dédié du coup, pour faire un petit jeu de piste! |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 12:47 | |
| etiquetteLocalisation n'était qu'un exemple arbitraire du nom que tu pouvais lui donner. Il faut que tu crées d'abord l'étiquette sur ton GUI (sans mettre de texte par défaut). Pour plus d'infos, tu peux consulter la rubrique d'aide sur le Texte d'interface. N'hésite pas à demander plus de précisions si nécessaire. Après c'est vrai que si tu veux afficher l'indication de type infobulle (à côté du curseur) le module de Kitai semblerait idéal. Mais la méthode de l'étiquette est ce qui se rapproche le plus de ce que tu essayais de faire à la base. _________________ 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.
|
|
| |
Pierrec Adepte de la Grande Tasse Bleue
Nombre de messages : 99
Date d'inscription : 16/06/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 12:54 | |
| ha quel idiot! je pensais que c'était une fonctionnalité cachée d'AGS [Edit : je viens de comprendre : étiquette = label ! ] |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 12:58 | |
| - valoulef a écrit:
- mais le plus efficace serait encore d'utiliser une étiquette (ou un label si tu préfère).
- Pierrec a écrit:
- je viens de comprendre : étiquette = label !
Oui C'est vrai que la plupart des gens utilisent la version anglosaxonne et sont plus habitués aux termes anglais, mais bon j'essaye d'imposer les termes francophones, c'est ma façon à moi de soutenir travail de traduction conséquent de Kitai (duquel, au passage, j'apprécie le projet en cours indiqué sur son profil ). _________________ 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.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 13:03 | |
| - valoulef a écrit:
- Après c'est vrai que si tu veux afficher l'indication de type infobulle (à côté du curseur) le module de Kitai semblerait idéal. Mais la méthode de l'étiquette est ce qui se rapproche le plus de ce que tu essayais de faire à la base.
Je plussoie sur ces deux remarques : mon module consiste simplement à généraliser cette méthode précisément à n'importe quel GUI. _________________ 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 ! |
|
| |
Pierrec Adepte de la Grande Tasse Bleue
Nombre de messages : 99
Date d'inscription : 16/06/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 13:08 | |
| Bon ben voilà...les deux solutions marchent maintenant Désolé d'avoir lu un peu trop vite Je vous remercie du fond du coeur, mon nouveau problème va maintenant être de choisir ma préférée |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI Ven 13 Déc 2013 - 14:57 | |
| - Pierrec a écrit:
- Je vous remercie du fond du coeur, mon nouveau problème va maintenant être de choisir ma préférée
Ça c'est le prix à payer d'une aide trop efficace J'ai passé le sujet en "résolu". _________________ 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.
|
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Display au survol d'un bouton de GUI | |
| |
|
| |
| [résolu]Display au survol d'un bouton de GUI | |
|