| [résolu]Afficher un chiffre qui s'additionne ou se soustrait | |
|
|
Auteur | Message |
---|
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: [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 |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: 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 ! |
|
| |
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: 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 |
|
| |
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: 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; } } |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: 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. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: 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 |
|
| |
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: 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; } } |
|
| |
valoulef Délégué de la tasse bleue
Nombre de messages : 1791
Age : 35
Localisation : Condate
Date d'inscription : 01/08/2011
| Sujet: 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. _________________ Vous êtes déjà allés à Condate ? Ils ont un petit vin qui à un goût de pierre à catapulte. C'est Toutatis en culotte de velours si j'ose m'exprimer ainsi.
|
|
| |
dominouche Adepte de la Grande Tasse Bleue
Nombre de messages : 145
Age : 68
Localisation : Olonne sur mer, Vendée
Date d'inscription : 19/04/2016
| Sujet: 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. |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Afficher un chiffre qui s'additionne ou se soustrait | |
| |
|
| |
| [résolu]Afficher un chiffre qui s'additionne ou se soustrait | |
|