| [résolu]script clavier virtuel | |
|
|
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]script clavier virtuel Mer 14 Sep 2016 - 14:03 | |
| Bonjour, un clavier numérique (voir image) et j'aimerais que le joueur clic dans un ordre précis sur des chiffres (hotspots), si l'ordre et tous les chiffres présents, "change room1", sinon "change room 2". Est-ce compliqué à mettre en place et ou trouver un exemple? J'ai bien regarder dans "demo game" le script du "terminal", mais je n'ai rien compris !!!
Dernière édition par dominouche le Jeu 15 Sep 2016 - 11:45, é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]script clavier virtuel Mer 14 Sep 2016 - 16:07 | |
| Salut dominouche, C'est pas ultra compliqué, mais ça demande un peu de familiarité avec le code. Tu as plusieurs façons de faire ça, mais l'idéal selon moi est de manipuler une variable textuelle en ajoutant le numéro à sa fin chaque fois que le joueur clique sur un bouton-numéro. En supposant qu'on n'a pas à cliquer sur un bouton "Valider", mais que la vérification se déclenche automatiquement lorsqu'on a entré autant de numéros qu'il y en a dans le code attendu, ça donnerait quelque chose comme ça dans le script de pièce (à adapter évidemment, et je ne suis plus sûr du format des fonctions clic sur hotspot, mais de toute façon tu les génères automatiquement) : - Code:
-
String codeJoueurse = "", codeAttendu = "123456";
function AjouteNumeroEtVerifie(int numero) { // On ajoute le numéro (après l'avoir converti en texte) codeJoueurse = codeJoueurse.Append(String.Format("%d", numero)); // Si on a fini d'entrer le code (longueur atteinte) if (codeJoueurse.Length == codeAttendu.Length) { // Bon code : vers pièce 1 if (codeJoueurse == codeAttendu) player.ChangeRoom(1); // Mauvais code : vers pièce 2 else player.ChangeRoom(2); // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois codeJoueurse = ""; } }
function hHotspotZero_Click(MouseButton* button) { AjouteNumeroEtVerifie(0); } function hHotspotUn_Click(MouseButton* button) { AjouteNumeroEtVerifie(1); } function hHotspotDeux_Click(MouseButton* button) { AjouteNumeroEtVerifie(2); } function hHotspotTrois_Click(MouseButton* button) { AjouteNumeroEtVerifie(3); } function hHotspotQuatre_Click(MouseButton* button) { AjouteNumeroEtVerifie(4); } function hHotspotCinq_Click(MouseButton* button) { AjouteNumeroEtVerifie(5); } function hHotspotSix_Click(MouseButton* button) { AjouteNumeroEtVerifie(6); } function hHotspotSept_Click(MouseButton* button) { AjouteNumeroEtVerifie(7); } function hHotspotHuit_Click(MouseButton* button) { AjouteNumeroEtVerifie(8); } function hHotspotNeuf_Click(MouseButton* button) { AjouteNumeroEtVerifie(9); }
_________________ 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]script clavier virtuel Mer 14 Sep 2016 - 16:50 | |
| Merci Kitai, mais tu me fais rire en disant "pas ultra compliqué", je ne suis qu'un petit débutant !!!! J'ai une erreur: room6.asc(3): Error (line 3): cannot assign initial value to global pointer - Code:
-
// room script file String codeJoueure = "", codeAttendu = "1234"; function AjouteNumeroEtVerifie(int numero) { // On ajoute le numéro (après l'avoir converti en texte) codeJoueurse = codeJoueurse.Append(String.Format("%d", numero)); // Si on a fini d'entrer le code (longueur atteinte) if (codeJoueurse.Length == codeAttendu.Length) { // Bon code : vers pièce 1 if (codeJoueurse == codeAttendu) player.ChangeRoom(1); // Mauvais code : vers pièce 2 else player.ChangeRoom(2); // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois codeJoueurse = ""; } } function hHotspot1_AnyClick() { AjouteNumeroEtVerifie(1); } } function hHotspot2_AnyClick() { AjouteNumeroEtVerifie(2); }
function hHotspot3_AnyClick() { AjouteNumeroEtVerifie(3); } function hHotspot4_AnyClick() { AjouteNumeroEtVerifie(4); }
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]script clavier virtuel Mer 14 Sep 2016 - 16:59 | |
| - dominouche a écrit:
- Merci Kitai, mais tu me fais rire en disant "pas ultra compliqué", je ne suis qu'un petit débutant !!!!
D'où le "ultra" - dominouche a écrit:
- J'ai une erreur:
room6.asc(3): Error (line 3): cannot assign initial value to global pointer Hm, je pensais pourtant qu'on pouvait donner une valeur initiale aux variables textuelles. Peut-être que différentes versions d'AGS gèrent ça différemment (ou que ma mémoire faillit). Essaie ça (attention à bien écrire le même nom de variable partout -- codeJoueurse dans mon code) - Code:
-
// room script file String codeJoueurse, codeAttendu;
function game_start() { codeJoueurse = ""; codeAttendu = "1234"; }
function AjouteNumeroEtVerifie(int numero) { // On ajoute le numéro (après l'avoir converti en texte) codeJoueurse = codeJoueurse.Append(String.Format("%d", numero)); // Si on a fini d'entrer le code (longueur atteinte) if (codeJoueurse.Length == codeAttendu.Length) { // Bon code : vers pièce 1 if (codeJoueurse == codeAttendu) player.ChangeRoom(1); // Mauvais code : vers pièce 2 else player.ChangeRoom(2); // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois codeJoueurse = ""; } } function hHotspot1_AnyClick() { AjouteNumeroEtVerifie(1); } } function hHotspot2_AnyClick() { AjouteNumeroEtVerifie(2); }
function hHotspot3_AnyClick() { AjouteNumeroEtVerifie(3); } function hHotspot4_AnyClick() { AjouteNumeroEtVerifie(4); } _________________ 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]script clavier virtuel Mer 14 Sep 2016 - 17:26 | |
| autre erreur: |
|
| |
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]script clavier virtuel Mer 14 Sep 2016 - 18:26 | |
| Je pense que ça vient de ce passage : - Code:
-
function game_start() { codeJoueurse = ""; codeAttendu = "1234"; } Il faudrait que tu mette les deux lignes dans la fonction game_start() du GlobalScript (elle existe déjà, normalement, tu la trouveras en parcourant le script). Mais pour ça il faudrait créer des variables globales. Je privilégierais plutôt la solution suivante : - Code:
-
function room_Load() { codeJoueurse = ""; codeAttendu = "1234"; } Tu peux créer cette fonction en passant par les events de la room (le puis : "Enters room before fade-in" ou équivalent si tu utilise la version fr). Tout le code qu'elle contient est exécuté à chaque nouvelle entrée dans la room. Par ailleurs il faut penser au fait qu'en l'état actuel, si le joueur ne tape que deux chiffres, quitte le cadran, revient et tape deux autres chiffres, les derniers chiffres tapés pendront la position 3 et 4, le cadran n'est réinitialisé qu'en sortant de la room et en y entrant à nouveau (à condition de suivre ma deuxième suggestion). - Kitai a écrit:
D'où le "ultra"
J'aurais plutôt dit "d'où le 'ça demande un peu de familiarité avec le code.'" _________________ 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.
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]script clavier virtuel Mer 14 Sep 2016 - 18:41 | |
| Mea culpa, je pensais que game_start était locale à chaque script et que chaque instance était lancée dans un ordre pré-défini. Mais il semble en effet qu'on ne puisse en mettre que dans des scripts généraux. - valoulef a écrit:
- Par ailleurs il faut penser au fait qu'en l'état actuel, si le joueur ne tape que deux chiffres, quitte le cadran, revient et tape deux autres chiffres, les derniers chiffres tapés pendront la position 3 et 4, le cadran n'est réinitialisé qu'en sortant de la room et en y entrant à nouveau (à condition de suivre ma deuxième suggestion).
Bien vu, il faudrait réinitialiser la variable codeJoueurse lorsqu'on quitte le cadran. Mais si le cadran est une pièce à lui seul, alors room_Load fera l'affaire. _________________ 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]script clavier virtuel Jeu 15 Sep 2016 - 8:08 | |
| Merci Valoulef pour ta proposition (la 2), mais erreur: Failed to save room room6.crm; details below room6.asc(10): Error (line 10): Undefined token 'codeJoueurse'
|
|
| |
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]script clavier virtuel Jeu 15 Sep 2016 - 10:22 | |
| Tu as bien laissé ça en haut du script ? - Code:
-
String codeJoueurse, codeAttendu; _________________ 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]script clavier virtuel Jeu 15 Sep 2016 - 10:43 | |
| oups je l'avais enlevé, mais maintenant: |
|
| |
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]script clavier virtuel Jeu 15 Sep 2016 - 10:51 | |
| Tu as créé une function room_FirstLoad dans les events de la room et tu as supprimé la fonction dans le script. Soit tu dois la laisser, soit tu dois également la supprimer dans les events. _________________ 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]script clavier virtuel Jeu 15 Sep 2016 - 10:57 | |
| Super, ça fonctionne! Merci |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]script clavier virtuel | |
| |
|
| |
| [résolu]script clavier virtuel | |
|