Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Boite de dialogue

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
paperbackwriter
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 51

Date d'inscription : 19/08/2015


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: 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.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Boite de dialogue   Mar 25 Aoû 2015 - 15:00

Tu entends quoi exactement par "comment bloquer la souris durant le dialogue" ? sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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 .

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: Boite de dialogue   Mar 25 Aoû 2015 - 18:11

General Setting -> Text output -> Custom-text window GUI -> numéro de ton GUI sourire
Pour le sprite du curseur Wait: Explore project -> Mouse cursors-> 7: wait -> Image -> 0

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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 ?

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Boite de dialogue   Mar 25 Aoû 2015 - 20:58

En fait ça ne le bloque pas, ça le rend invisible sourire

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: Re: Boite de dialogue   Mar 25 Aoû 2015 - 21:20

ha mais tout s'explique x)

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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 ? ^^

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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; 
}

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: 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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: Boite de dialogue   Sam 5 Sep 2015 - 18:16

Ah je suis ravi d'avoir eu une bonne idée grand sourire

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: Re: Boite de dialogue   Sam 5 Sep 2015 - 20:06

Merci les gars mais comment utiliser le second code ?

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: 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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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 sourire

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: 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 ?

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: 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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: Re: Boite de dialogue   Mer 9 Sep 2015 - 11:13

J'ai pas mis le code mais pourtant sa fonctionne c'est bizarre

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Boite de dialogue   Aujourd'hui à 7:59

Revenir en haut Aller en bas
 
Boite de dialogue
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Une boite de dialogue ?
» DDP boite ??
» Création d'une boite de transport personnalisée
» Rien à tapper de la boite moi j'veux le jeu.
» [VENDS] Gros stock de MVS en boite

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: