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

Partagez | 
 

 [résolu]Afficher un chiffre qui s'additionne ou se soustrait

Aller en bas 
AuteurMessage
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Mer 31 Jan 2018 - 16:48

Bonjour,
me voila de retour!
Avant de me lancer dans un deuxième jeu, je m’essaie dans quelques scipts.
Je souhaite que lors d'un clic sur la flèche haute s'affiche un chiffre = à N+1 et sur la flèche basse un chiffre = à N-1.
Donc si 2 affiché, flèche haute 3 s'affiche, flèche basse 1 s'affiche.
Les chiffres son des objets (oZero, oUn, oDeux .....).

Il y a peut être une autre solution que des objets, j'ai cherché sur différents forums, mais je ne trouve pas.

J'ai essayé plusieurs chose, mais rien ne fonctionne bien.


Dernière édition par dominouche le Ven 2 Fév 2018 - 19:31, édité 1 fois
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
avatar

Nombre de messages : 2575

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Mer 31 Jan 2018 - 19:24

Salut dominouche,

Tu peux utiliser des images, mais ça risque d'être un peu compliqué si tes nombres dépassent 9, auquel cas utiliser du texte serait peut-être plus avisé. Maintenant si c'est des chiffres comme tu dis (0 à 9) ça devrait aller (ça fait que 10 images).

Dans tous les cas ça me semble beaucoup plus facile de passer par un GUI que par des objets dans la pièce. Ça facilite la gestion des clics. Je vais donc supposer que tu créees un GUI avec 3 boutons pour les chiffres (gauche, milieu, droite), 3 boutons pour les flèches hautes (gauche, milieu, droite) et 3 boutons les flèches basses (gauche, milieu, droite). Dans la grille de proporiétés des boutons, tu peux les associer à une image.

À partir de là, l'idée générale c'est de créer trois variables numériques (int), une correspondant à chacun de ces chiffres, et de manipuler la bonne variable dans la fonction associée à chaque flèche.
De façon très schématique, ton code devrait ressembler à ça :
Code:
int chiffreGauche = 0, chiffreMilieu = 0, chiffreDroite = 0;

function btnFlecheGaucheHaut_Click(GUIControl *control, MouseButton button){
  if (chiffreGauche >= 9) return; // Si le chiffre a déjà atteint 9, on l'augmente pas : on arrête tout (return)
  // À partir d'ici les instructions sont exécutées que si on n'a pas 'return' cad si le chiffre est < 9
  chiffreGauche++; // On augmente la valeur de la variable
  // Et maintenant on attribue l'image correspondante au bouton-chiffre
  if (chiffreGauche == 1) // Je commence à 1 parce qu'on peut pas augmenter *vers* 0
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE1; // Remplace par le numéro de sprite adéquat
  else if (chiffreGauche == 2)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE2;
  else if (chiffreGauche == 3)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE3;
  else if (chiffreGauche == 4)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE4;
  else if (chiffreGauche == 5)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE5;
  else if (chiffreGauche == 6)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE6;
  else if (chiffreGauche == 7)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE7;
  else if (chiffreGauche == 8)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE8;
  else if (chiffreGauche == 9)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE9;
}

function btnFlecheGaucheBas_Click(GUIControl *control, MouseButton button){
  if (chiffreGauche <= 0) return; // Si le chiffre a déjà atteint 0, on le diminue pas : on arrête tout (return)
  // À partir d'ici les instructions sont exécutées que si on n'a pas 'return' cad si le chiffre est > 0
  chiffreGauche--; // On diminue la valeur de la variable
  // Et maintenant on attribue l'image correspondante au bouton-chiffre
  if (chiffreGauche == 0)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE0;
  else if (chiffreGauche == 1)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE1;
  else if (chiffreGauche == 2)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE2;
  else if (chiffreGauche == 3)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE3;
  else if (chiffreGauche == 4)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE4;
  else if (chiffreGauche == 5)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE5;
  else if (chiffreGauche == 6)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE6;
  else if (chiffreGauche == 7)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE7;
  else if (chiffreGauche == 8)
    btnChiffreGauche.NormalGraphic = NUMEROSPRITECHIFFRE8; // Je m'arrête à 8 parce qu'on peut pas diminuer *vers 9* (qui est le plus grand *chiffre*)
}

Je te laisse généraliser le code aux autres flèches/chiffres.

_________________
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
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Mer 31 Jan 2018 - 22:45

Super, merci beaucoup, je vais essayer ça.
Tu es un
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 18:54

Encore une question!!!!
Le système fonctionne très bien (merci Kitai), mais lorsque je met une dernière fonction "ButtonValid_OnClick", j'ai une erreur: GlobalScript.asc(725): Error (line 168): PE04: parse error at 'chiffreGauche'

J'ai du faire n'importe quoi, encore et encore !

Code:
int chiffreGauche = 0, chiffreMilieu = 0, chiffreDroite = 0;

function btnFlecheGaucheHaut_OnClick(GUIControl *control, MouseButton button)

{
      if (chiffreGauche >= 9) return; // Si le chiffre a déjà atteint 9, on l'augmente pas : on arrête tout (return)
      // À partir d'ici les instructions sont exécutées que si on n'a pas 'return' car si le chiffre est < 9
      chiffreGauche++; // On augmente la valeur de la variable
      // Et maintenant on attribue l'image correspondante au bouton-chiffre
      if (chiffreGauche == 1) // Je commence à 1 parce qu'on peut pas augmenter *vers* 0
        btnChiffreGauche.NormalGraphic = 7; // Remplace par le numéro de sprite adéquat
      else if (chiffreGauche == 2)
        btnChiffreGauche.NormalGraphic = 8;
      else if (chiffreGauche == 3)
        btnChiffreGauche.NormalGraphic = 12;
      else if (chiffreGauche == 4)
        btnChiffreGauche.NormalGraphic = 13;
      else if (chiffreGauche == 5)
        btnChiffreGauche.NormalGraphic = 14;
      else if (chiffreGauche == 6)
        btnChiffreGauche.NormalGraphic = 15;
      else if (chiffreGauche == 7)
        btnChiffreGauche.NormalGraphic = 16;
      else if (chiffreGauche ==
        btnChiffreGauche.NormalGraphic = 17;
      else if (chiffreGauche == 9)
        btnChiffreGauche.NormalGraphic = 18;
    }

function btnFlecheGaucheBas_OnClick(GUIControl *control, MouseButton button)
{
    if (chiffreGauche <= 0) return;
    
      chiffreGauche--;
      if (chiffreGauche == 0)
        btnChiffreGauche.NormalGraphic = 6;
      else if (chiffreGauche == 1)
        btnChiffreGauche.NormalGraphic = 7;
      else if (chiffreGauche == 2)
        btnChiffreGauche.NormalGraphic = 8;
      else if (chiffreGauche == 3)
        btnChiffreGauche.NormalGraphic = 12;
      else if (chiffreGauche == 4)
        btnChiffreGauche.NormalGraphic = 13;
      else if (chiffreGauche == 5)
        btnChiffreGauche.NormalGraphic = 14;
      else if (chiffreGauche == 6)
        btnChiffreGauche.NormalGraphic = 15;
      else if (chiffreGauche == 7)
        btnChiffreGauche.NormalGraphic = 16;
      else if (chiffreGauche ==
        btnChiffreGauche.NormalGraphic = 17;
}


function btnFlecheMilieuHaut_OnClick(GUIControl *control, MouseButton button)
{
if (chiffreMilieu >= 9) return;
       chiffreMilieu++;
      if (chiffreMilieu == 1)
        btnChiffreMilieu.NormalGraphic = 7;
      else if (chiffreMilieu == 2)
        btnChiffreMilieu.NormalGraphic = 8;
      else if (chiffreMilieu == 3)
        btnChiffreMilieu.NormalGraphic = 12;
      else if (chiffreMilieu == 4)
        btnChiffreMilieu.NormalGraphic = 13;
      else if (chiffreMilieu == 5)
        btnChiffreMilieu.NormalGraphic = 14;
      else if (chiffreMilieu == 6)
        btnChiffreMilieu.NormalGraphic = 15;
      else if (chiffreMilieu == 7)
        btnChiffreMilieu.NormalGraphic = 16;
      else if (chiffreMilieu ==
        btnChiffreMilieu.NormalGraphic = 17;
      else if (chiffreMilieu == 9)
        btnChiffreMilieu.NormalGraphic = 18;
}

function btnFlecheMilieuBas_OnClick(GUIControl *control, MouseButton button)
{
  if (chiffreMilieu <= 0) return;
      
      chiffreMilieu--;
      if (chiffreMilieu == 0)
        btnChiffreMilieu.NormalGraphic = 6;
      else if (chiffreMilieu == 1)
        btnChiffreMilieu.NormalGraphic = 7;
      else if (chiffreMilieu == 2)
        btnChiffreMilieu.NormalGraphic = 8;
      else if (chiffreMilieu == 3)
        btnChiffreMilieu.NormalGraphic = 12;
      else if (chiffreMilieu == 4)
        btnChiffreMilieu.NormalGraphic = 13;
      else if (chiffreMilieu == 5)
        btnChiffreMilieu.NormalGraphic = 14;
      else if (chiffreMilieu == 6)
        btnChiffreMilieu.NormalGraphic = 15;
      else if (chiffreMilieu == 7)
        btnChiffreMilieu.NormalGraphic = 16;
      else if (chiffreMilieu ==
        btnChiffreMilieu.NormalGraphic = 17;
}
function btnFlecheDroitHaut_OnClick(GUIControl *control, MouseButton button)
{
if (chiffreDroite >= 9) return;
    
      chiffreDroite++;
       if (chiffreDroite == 1)
        btnChiffreDroit.NormalGraphic = 7;
      else if (chiffreDroite == 2)
        btnChiffreDroit.NormalGraphic = 8;
      else if (chiffreDroite == 3)
        btnChiffreDroit.NormalGraphic = 12;
      else if (chiffreDroite == 4)
        btnChiffreDroit.NormalGraphic = 13;
      else if (chiffreDroite == 5)
        btnChiffreDroit.NormalGraphic = 14;
      else if (chiffreDroite == 6)
        btnChiffreDroit.NormalGraphic = 15;
      else if (chiffreDroite == 7)
        btnChiffreDroit.NormalGraphic = 16;
      else if (chiffreDroite ==
        btnChiffreDroit.NormalGraphic = 17;
      else if (chiffreDroite == 9)
        btnChiffreDroit.NormalGraphic = 18;
}


function btnFlecheDroitBas_OnClick(GUIControl *control, MouseButton button)
{
if (chiffreDroite <= 0) return;
      
      chiffreDroite--;
    
      if  (chiffreDroite == 0)
        btnChiffreDroit.NormalGraphic = 6;
      else if  (chiffreDroite == 1)
        btnChiffreDroit.NormalGraphic = 7;
      else if (chiffreDroite == 2)
        btnChiffreDroit.NormalGraphic = 8;
      else if  (chiffreDroite == 3)
        btnChiffreDroit.NormalGraphic = 12;
      else if  (chiffreDroite == 4)
        btnChiffreDroit.NormalGraphic = 13;
      else if  (chiffreDroite == 5)
        btnChiffreDroit.NormalGraphic = 14;
      else if (chiffreDroite == 6)
        btnChiffreDroit.NormalGraphic = 15;
      else if (chiffreDroite == 7)
        btnChiffreDroit.NormalGraphic = 16;
      else if  (chiffreDroite ==
        btnChiffreDroit.NormalGraphic = 17;
}
    
function ButtonValid_OnClick(GUIControl *control, MouseButton button)
{
if ( chiffreGauche == 3) {
if (chiffreMilieu == 2) {
if( chiffreDroite == 7){

  gCode.Visible = false;
}
}
}
else
{
 chiffreGauche == 0; chiffreMilieu == 0; chiffreDroite == 0;
}
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1476

Age : 28

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 18:58

Tout simplement parce que tu à mis "==" (qui sert à faire une comparaison) et non "=" qui sert à définir une valeur, ce dont tu as besoin dans ta dernière ligne. clin d'oeil

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 19:03

Maintenant je n'ai plus d'erreur, mais les chiffres ne reviennent pas à zéro.
Si je clique sur "ButtonValid_OnClick", rien ne se passe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 19:12

C'est bon j'ai trouvé.
La solution pour la dernière fonction si cela peut servir à d'autre.
Code:
function ButtonValid_OnClick(GUIControl *control, MouseButton button)
{
if ( chiffreGauche == 3) {
if (chiffreMilieu == 2) {
if( chiffreDroite == 7){

  gCode.Visible = false;
}
}
}
else
{
 btnChiffreGauche.NormalGraphic = 11; btnChiffreMilieu.NormalGraphic = 11;  btnChiffreDroit.NormalGraphic = 11;
}
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 1476

Age : 28

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 19:18

En fait, dans la façon dont tu as codé ça, si le chiffre de gauche vaut 3, le else ne sera pas appliqué (car le bloc if précédent vaudra true). Il faudrait plutôt faire ça :

Code:

function ButtonValid_OnClick(GUIControl *control, MouseButton button)
{
if (( chiffreGauche == 3) && (chiffreMilieu == 2) && ( chiffreDroite == 7)){
  gCode.Visible = false;
}

else
{
 btnChiffreGauche.NormalGraphic = 11;
 btnChiffreMilieu.NormalGraphic = 11; 
 btnChiffreDroit.NormalGraphic = 11;
}
}

On a donc une seule condition préalable, où "&&" signifie "ET", donc la condition vaudra true uniquement si les trois variables correspondent aux valeurs indiquées.

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 141

Age : 61

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   Ven 2 Fév 2018 - 19:31

Effectivement, maintenant que tu me l'as fait remarquer, c'est évidant !!!
Merci, Valoulef.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   

Revenir en haut Aller en bas
 
[résolu]Afficher un chiffre qui s'additionne ou se soustrait
Revenir en haut 
Page 1 sur 1

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: