Adventure Games Studio fr
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilRechercherS'enregistrerConnexion
Le Deal du moment :
Soldes Converse : -50% de réduction sur une ...
Voir le deal

 

 ClaimEvent(); RESOLU

Aller en bas 
AuteurMessage
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:09

Bonjour, et bien voui, je sèche ^^
On a une fonction Dire qui affiche le message sur un label en bas de l'écran;

Le problème vient du fait que si deux fonctions Dire se suivent, la première ne passera pas, c'est toujours là dernière qui s'affiche.
Les fonctions Say ou Display, qui elles permettent aux joueur d'appuyer sur une touche ou de cliquer pour faire disparaître le premier message et afficher le second.

Comment appeler le joueur d'appuyer sur une touche pour faire disparaître le message.

J'ai essayé ClaimEvent(), mais je n'arrive pas à m'en servir...
Code:

function Dire(String message)
{
  gtext.Visible = true;
  LabelText.Text = message;
}

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.


Dernière édition par Crazy Legs le Lun 15 Juin 2009 - 14:05, édité 1 fois
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:14

Tu peux faire une file d'attente des messages à afficher avec un tableau de String.
Quand le 1er message de la file est affiché, tu fais remonter tous les autres messages d'un cran.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:19

Voici le code (pas testé)

Code:
String liste_message[10];
int nb_messages = 0;

function ajouter_message(String message){
  nb_message++;
  liste_message[nb_messages] = message;
}

function dire(){
  if (nb_messages > 0) {
    gtext.Visible = true;
    LabelText.Text = liste_message(1);
   int i = 1;
   while (i < nb_messages){
     i++;
     liste_message[i] = liste_message[i + 1];
   }
   nb_messages--;
  }
}
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:26

Le fait de ne plus avoir d'argument dans la fonction Dire ne m'arrange pas ^^ mais je te remercie.

N'existerait-t-il pas une pitite fonction qui met le jeu en pause et oblige le joueur à appuyer sur une touche ou de cliquer pour remettre le jeu en marche.
(Surtout pas de WaitMouseKey() !!!).

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:32

Code:
PauseGame();

Sinon, tu peux utiliser un Wait() pour que le joueur ai le temps de lire le message. Tu peux calculer la durée du Wait en fonction du nombre de caractères dans le message.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:35

@Crazy Legs a écrit:
(Surtout pas de WaitMouseKey() !!!).

Pourquoi ?
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:38

@Asraroth a écrit:
Code:
PauseGame();

Sinon, tu peux utiliser un Wait() pour que le joueur ai le temps de lire le message. Tu peux calculer la durée du Wait en fonction du nombre de caractères dans le message.

J'ai déjà essayé tout ça XD c'est pour ça que je poste ici.
Toutes les fonctions Wait() mettent le curseur en mode attendre...

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:42

Avec PauseGame() ça ne marche pas, c'est toujours le dernier message qui s'affiche. :travaille:

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 12:56

Je persiste avec la liste de messages :

A la place de la fonction dire, appelle la fonction "ajouter_message(message)"

Code:
String liste_message[10];
int nb_messages = 0;

function ajouter_message(String message){
  nb_message++;
  liste_message[nb_messages] = message;
  if (!gtext.Visible) dire();
}

function dire(){
  if (nb_messages > 0) {
    gtext.Visible = true;
    LabelText.Text = liste_message(1);
  int i = 1;
  while (i < nb_messages){
    i++;
    liste_message[i] = liste_message[i + 1];
  }
  nb_messages--;
  }
}

function on_key_press(int keycode){
  if (nb_messages > 0) {
    ClaimEvent();
    dire();
  }
  ...
}
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:01

Pas besoin du ClaimEvent en fait... il faut juste un Return

Code:
String liste_message[10];
int nb_messages = 0;

function ajouter_message(String message){
  nb_message++;
  liste_message[nb_messages] = message;
  if (!gtext.Visible) dire();
}

function dire(){
  gtext.Visible = true;
  LabelText.Text = liste_message(1);
  int i = 1;
  while (i < nb_messages){
    i++;
    liste_message[i] = liste_message[i + 1];
  }
  nb_messages--;
}

function on_key_press(int keycode){
  if (nb_messages > 0) {
    dire();
   return;
  }
  ...
}
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:15

Euh finalement ça marche pô du tout zarb
Mais je vais essayer de corriger ça.

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:23

Désolé j'ai préféré tout recommencer avec ma fonction de départ, j'ai aouter ça :

Code:
function Dire(String message)
{
  if(gtext.Visible == true)
  {
  WaitMouseKey(120); // A remplacer par une action clavier/souris du joueur.
  LabelText.Text = message;
  }
  else
  {
  gtext.Visible = true;
  LabelText.Text = message;
  }
}

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:44

ClaimEvent(); RESOLU 114419 ClaimEvent(); RESOLU 114419 ClaimEvent(); RESOLU 114419

Code:
function Dire(String message)
{
  if(gtext.Visible == true)
  {
  Clic = true;
  PauseGame();
  LabelText.Text = message;
  }
  else
  {
  gtext.Visible = true;
  LabelText.Text = message;
  }
}

Code:
function on_key_press(int keycode)
{
  if(Clic == true)
  {
  UnPauseGame();
  }
...

De cette manière :

Code:

function raconterSaVie()
{
Dire("Salut"); // Le GUI n'est pas affiché donc il l'affiche sans problème.
Dire("Ça va ?"); // Le GUI est affiché à cause de la fonction précédente donc le jeu est en pause jusqu'à ce qu'on appuie sur une touche.
Dire("Moi Ça va"); // Pareil
}

Je suis sous l'âgé !
===> [.]

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:46

j'ai testé... ça marche avec quelques corrections

Code:
String liste_message[10];
int nb_messages = 0;

function dire(){
  LabelT.Text = liste_message[1];
  int i = 1;
  while (i < nb_messages){
    liste_message[i] = liste_message[i + 1];
    i++;
  }
  nb_messages--;
}

function ajouter_message(String message){
  nb_messages++;
  liste_message[nb_messages] = message;
  if (LabelT.Text == "") dire();
}

function on_key_press(eKeyCode keycode)
{
  if (IsGamePaused()) keycode = 0; // game paused, so don't react to keypresses
 
  if (nb_messages > 0) {
    dire();
    return;
  }
...
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:47

Trop tard... :rollingeyes: :ihih: XD langue clin d'oeil

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 13:56

Pas terrible de mettre le jeu en pause s'il y a des animations qui tournent dans le background. Et çà n'arrête pas la musique ? (pas testé)
Revenir en haut Aller en bas
Crazy Legs
Grand Cliqueur Royal
Grand Cliqueur Royal
Crazy Legs

Nombre de messages : 1513

Age : 27

Localisation : La Rochelle

Date d'inscription : 09/01/2008


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 14:02

Tu as raison, en faite j'ai trouvé une autre astuce :

Code:
function Dire(String message)
{
  if(gtext.Visible == true)
  {
  Display(" ");
  LabelText.Text = message;
  }
  else
  {
  gtext.Visible = true;
  LabelText.Text = message;
  Display("");
  }
}

La fonction Display met le jeu en pause en quelque sorte dès qu'on clique ou qu'on appuie sur une touche le message disparaît et les autres fonctions continuent...
C'est pas beau ça grand sourire
Par contre il est vrai que dans les propriétés d'AGS on a fait en sorte qu'au lieu d'avoir un cadre blanc on a un cadre invisible ainsi que les bords.
Pratique mais pas propre j'avoue.
Merci quand même Asraroth ton code aurait fonctionné aussi !

_________________
VOUS POURREZ BIENTÔT RÉAPPRENDRE À UTILISER AGS SUR LE SITE DU ZÉRO !
Le tuto est actuellement en refonte totale activement depuis le 20 juillet, prochaine sortie en août ou septembre si tout se passe bien.
Revenir en haut Aller en bas
Asraroth
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Asraroth

Nombre de messages : 1433

Age : 46

Date d'inscription : 20/10/2006


ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU EmptyLun 15 Juin 2009 - 14:10

De rien ! ^^
Enfin d'après la doc, la commande Display bloque les animations... confus
Revenir en haut Aller en bas
Contenu sponsorisé




ClaimEvent(); RESOLU Empty
MessageSujet: Re: ClaimEvent(); RESOLU   ClaimEvent(); RESOLU Empty

Revenir en haut Aller en bas
 
ClaimEvent(); RESOLU
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] Oreille bloqué et pas de son
» [RESOLU] 4eme LED toujours orange
» [Résolu]probleme alicebox
» (RESOLU ) 4 leds orange impossible de connecter NABASRESILLE
» [RESOLU] Problème de connexion : 2 diodes vertes (Neuf Box)

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: