| Boite de dialogue | |
|
+3Billbis paperbackwriter Thebroch 7 participants |
Auteur | Message |
---|
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Boite de dialogue Mar 25 Aoû 2015 - 12:55 | |
| Bonjour j'ai quelques questions sur les boites de dialogue : je tient a presiser que je parle bien de cette boite la : 1-comment bloquer la souris durant le dialogue 2-comment personnalisé cette boite (graphisme police ) voila merci _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
paperbackwriter Adepte de la Grande Tasse Bleue
Nombre de messages : 51
Date d'inscription : 19/08/2015
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 13:07 | |
| Hello, désolé ce n'est pas une réponse à ta question, c'est juste pour améliorer ton jeu! met plutot
"Mon Spitfire S'est écrasé, je ne repartirAI pas avec.. "
Sinon sympa le scénario et les graphismes ! |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 13:13 | |
| Comment tu appelle ces boites de dialogues déjà ? Avec quelle fonction ? Pour bloquer la souris, je dirait de ne pas assigner de sprite (ou d'assigner un sprite vide) au Mouse cursors "Wait". Pour personnaliser la boite de dialogue, il faut créer un Text Window GUI et spécifier 8 sprites de contour et un sprite de fond. |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 15:00 | |
| Tu entends quoi exactement par "comment bloquer la souris durant le dialogue" ? |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 17:50 | |
| Bonjour deja merci paperbackwriter (j'ai corriger la faute au passage ) ensuite Billbis j'utilise interact et la fonction Display pour les dialogues , je n'ai pas compris ce que tu a dis a propos de la souris et pour le gui j'ai crée le Text windows gui mais après je fais quoi ? et pour finir chefgeorges j'entend par la que quand la boite de dialogue s'ouvre la souris s’arrête qu'on puissent plus la bouger quoi . _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 18:11 | |
| General Setting -> Text output -> Custom-text window GUI -> numéro de ton GUI Pour le sprite du curseur Wait: Explore project -> Mouse cursors-> 7: wait -> Image -> 0 |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 19:52 | |
| Merci Billbis j'ai quasiment compris en fait c'est bon j'ai modifier le GUI mais voila j'arrive pas a le perssonalisé en jeu sa me donne sa : et pour le curseur je vois pas comment sa bloque mon curseur ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Shai-la Ouvrière en Chef de la Grande Tasse Bleue
Nombre de messages : 6018
Age : 46
Localisation : Montpellier
Date d'inscription : 17/04/2006
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 20:58 | |
| En fait ça ne le bloque pas, ça le rend invisible |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 21:20 | |
| ha mais tout s'explique x) _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Boite de dialogue Mar 25 Aoû 2015 - 21:36 | |
| Si tu veux le laisser visible mais le bloquer, c'est possible aussi. Il suffit d'avoir une variable booléenne globale, mettons bloqueCurseur que tu règles initialement sur false, puis que tu passes sur true aussi longtemps que tu veux bloquer le curseur et que tu remets sur false lorsque tu as fini de le bloquer. Ensuite tu ajoutes ce code dans un fichier de script général - Code:
-
int bloqueCurseurX, bloqueCurseurY; function repeatedly_execute_always() { if (bloqueCurseur) { if (bloqueCurseurX < 0) { bloqueCurseurX = mouse.x; bloqueCurseurY = mouse.y; } mouse.SetPosition(bloqueCurseurX, bloqueCurseurY); } else if (bloqueCurseurX >= 0) bloqueCurseurX = -1; } _________________ 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 ! |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Ven 4 Sep 2015 - 18:10 | |
| Excuse moi Kitai mais pour etre franc le débutant que je suis n'a rien compris a ton message si tu pouvais expliqué plus simplement stp ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Boite de dialogue Ven 4 Sep 2015 - 19:09 | |
| Alors l'idée c'est que tu voudras, à certains moments dans ton jeu, empêcher le curseur de bouger, mais lui permettre de bouger à d'autres moments. Il te faut donc un interrupteur pour régler soit sur "peut bouger" soit sur "fixe". C'est ce que je te propose de faire en créant une variable globale. Lorsque cette variable vaudra true, ça voudra dire que l'interrupteur est sur "fixe", lorsque cette variable vaudra false, ça voudra dire que l'interrupteur est sur "peut bouger". C'est à toi de changer la valeur de la variable lorsque tu veux changer le comportement de la souris. Pour que tu puisses utiliser cette variable de cette façon cependant, tu dois ajouter du code dans le Script Global. C'est le code que je t'ai donné dans le message précédent, et que je recopie ici avec des explications (même si tu n'as pas fondamentalement besoin de comprendre ce code pour utiliser la variable comme je l'ai décrit). Je suppose que tu auras nommé la variable que tu as créée bloqueCurseur. - Code:
-
// Ces variables vont garder en mémoire la position du curseur // On mettra bloqueCurseurX à -1 chaque fois que les anciennes coordonnées seront obsolètes int bloqueCurseurX = -1, bloqueCurseurY;
// Cette fonction s'exécute à chaque cycle de jeu (même pendant les pauses), environ tous les quarantièmes de seconde function repeatedly_execute_always() { // Si la valeur de 'bloqueCurseur' vaut 'true' (j'ai omis "== true" qui est optionnel) if (bloqueCurseur) { // Et si la valeur de 'bloqueCurseurX' est inférieure à 0 if (bloqueCurseurX < 0) { // On met à jour bloqueCurseurX/Y avec les coordonnées actuelles de la souris bloqueCurseurX = mouse.x; bloqueCurseurY = mouse.y; } // Dans tous les cas, on remet le curseur aux coordonnées (bloqueCurseurX, bloqueCurseurY) mouse.SetPosition(bloqueCurseurX, bloqueCurseurY); } // Sinon, si 'bloqueCurseur' vaut 'false' // et si bloqueCurseurX est supérieure à -1, // alors les coordonnées mémorisées seront obsolète quand on réactivera, // ce qu'on signale en passant 'bloqueCurseur' à -1 (cf. plus haut) else if (bloqueCurseurX > -1) bloqueCurseurX = -1; } Après il te suffit d'activer l'interrupteur au moment opportun, avec les commandes - Code:
-
bloqueCurseur = true; et - Code:
-
bloqueCurseur = false; C'est-à-dire dans ton cas respectivement juste avant et juste après les commandes Say/ Display. _________________ 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 ! |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 14:48 | |
| Bonjour , alors j'ai fais suivie ta démarche mais j'ai encore du mal avec la commande bloqueCurseur = false; donc voila j'ai fais ce script , c'est correct ? (j'en doute pas parce que sa fonctionne pas ) - Code:
-
function hHotspot1_AnyClick() { bloqueCurseur = true; Display("Mon SpitFire c'est ecrase , je ne repartirai pas avec ..."); bloqueCurseur = false; }
_________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 17:35 | |
| Malheureusement il semble que la fonction SetPosition ne fonctionne pas dans repeatedly_execute_always (fonction non bloquante ?). Du coup je vois pas trop comment faire pour contourner ce problème, désolé. _________________ 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 ! |
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 18:03 | |
| SAlut Kitai
peut etre avec la fonction
Mouse.SetBounds(int left, int top, int right, int bottom)
en definissant le rectangle left,top,right,bottom au position du rectangle du guy a condition qu'il s'affiche toujours au meme endroit c'est peut etre une idée ? _________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 18:13 | |
| Mais bien sûr hanakin, très astucieux ! Et beaucoup plus propre et économique que mon usine à gaz : - Code:
-
mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); Display("blablabla"); mouse.SetBounds(0, 0, 320, 200); Si tu l'utilises souvent tu préférera sûrement passer par des fonctions persos : - Code:
-
function Message(String texte) { mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); Display(texte); mouse.SetBounds(0, 0, 320, 200); }
function Dit(this Character*, String texte) { mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); this.Say(texte); mouse.SetBounds(0, 0, 320, 200); } _________________ 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 ! |
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 18:16 | |
| Ah je suis ravi d'avoir eu une bonne idée _________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 20:06 | |
| Merci les gars mais comment utiliser le second code ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: Boite de dialogue Sam 5 Sep 2015 - 20:44 | |
| Bonjour si j'ai bien comprit le script de kitai ces 2 fonctions sont a mettre en haut du globalscript.asc - Code:
-
function Message(String texte) { mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); Display(texte); mouse.SetBounds(0, 0, 320, 200); } function Dit(this Character*, String texte) { mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); this.Say(texte); mouse.SetBounds(0, 0, 320, 200); } la premiere fonction concerne la commande display et la 2eme la commande say que tu appeles comme ceci Message("toto tata titi"); toto tata titi etant ton texte et la 2eme cEgo.Dit("toto tata titi") ; sauf erreur de ma part Ne pas oublier dans le globalscript.ash de rajouter ces lignes - Code:
-
import function Dit(this Character*, String texte); import function Message(String texte); tu peux meme definir le rectangle ou sera bloqué la souris - Code:
-
mouse.SetBounds(100, 50, 200, 100); // les coordonnées de ton rectangle de message http://mouse.SetBounds 1er ligne mouse.SetBounds(0, 0, 640, 480); // l'ecran complet 640X480 pour liberer la souris http://mouse.SetBounds 2eme ligne _________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Dim 6 Sep 2015 - 19:23 | |
| Bonjour , Merci hanakin sa fonctionne tres bien mais y aurais pas un moyen de bloqué le curseur a l'endroit ou on clique car j'ai fais mon curseur de tel sorte a ce que quand il passe au dessus d'une hotspot il passe automatiquement en interact mais si on bouge la souris durant l'affichage du message le curseur reste bloqué en mode interact (si vous avez pas compris dite le je vous ferais un dessin vite fais ) PS: une autre solution serait une commande qui s’exécuterait tout les x secondes et remettrais bien le curseurs en fonction de sa position (hotspot ou pas ) et a vrai dire sa m'arrangerais _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Boite de dialogue Dim 6 Sep 2015 - 19:37 | |
| - Thebroch a écrit:
- mais y aurais pas un moyen de bloqué le curseur a l'endroit ou on clique
C'est précisément ce que fait le code dans les fonctions Message et Dit, avec cette ligne : - Code:
-
mouse.SetBounds(mouse.x, mouse.y, mouse.x, mouse.y); L'idée c'est qu'après avoir ajouté ces fonctions dans ton global script et les avoir importées dans l'en-tête ( .ash) comme l'a expliqué hanakin, tu remplaces toutes tes commandes Display par des commandes Message et toutes tes commandes Say par des commandes Dit. _________________ 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 ! |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Mar 8 Sep 2015 - 19:14 | |
| Merci ça fonctionne , mais j'ai pas tout a fait compris a quoi sers les commandes Message et Dit ? _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
hanakin Cliqueur Amateur
Nombre de messages : 492
Age : 59
Localisation : Angers
Date d'inscription : 12/09/2012
| Sujet: Re: Boite de dialogue Mar 8 Sep 2015 - 19:57 | |
| Elles remplacent simplement la commande display et say car sans ces nouvelle fonctions (Message et dit) tu ne pourrais bloquer ton curseur grace a Mouse.Setbounds _________________ Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. ( Spock) |
|
| |
Thebroch Cliqueur Emérite
Nombre de messages : 603
Age : 24
Localisation : Lorient
Date d'inscription : 23/07/2015
| Sujet: Re: Boite de dialogue Mer 9 Sep 2015 - 11:13 | |
| J'ai pas mis le code mais pourtant sa fonctionne c'est bizarre _________________ Le café au bois ça consiste à moudre une cafetière et à la mettre dans des copeaux de bois.
|
|
| |
Contenu sponsorisé
| Sujet: Re: Boite de dialogue | |
| |
|
| |
| Boite de dialogue | |
|