Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

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

Aller en bas 
3 participants
AuteurMessage
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyMer 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. [résolu]Afficher un chiffre qui s'additionne ou se soustrait 1507758844
[résolu]Afficher un chiffre qui s'additionne ou se soustrait Captur10


Dernière édition par dominouche le Ven 2 Fév 2018 - 19:31, édité 1 fois
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyMer 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.
Revenir en haut Aller en bas
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
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


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

Super, merci beaucoup, je vais essayer ça.
Tu es un [résolu]Afficher un chiffre qui s'additionne ou se soustrait 1181541269
Revenir en haut Aller en bas
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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 ! [résolu]Afficher un chiffre qui s'additionne ou se soustrait 1507758844

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
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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
Revenir en haut Aller en bas
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue
valoulef


Nombre de messages : 1791

Age : 35

Localisation : Condate

Date d'inscription : 01/08/2011


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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.
Revenir en haut Aller en bas
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
dominouche


Nombre de messages : 145

Age : 67

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]Afficher un chiffre qui s'additionne ou se soustrait Empty
MessageSujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait   [résolu]Afficher un chiffre qui s'additionne ou se soustrait EmptyVen 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
Contenu sponsorisé





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

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: