Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 [résolu]script clavier virtuel

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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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 !!!

[résolu]script clavier virtuel Clavie10


Dernière édition par dominouche le Jeu 15 Sep 2016 - 11:45, é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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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 !
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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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);
}
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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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" clin d'oeil

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 !
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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 14 Sep 2016 - 17:26

autre erreur:

[résolu]script clavier virtuel Captur12
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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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 [résolu]script clavier virtuel 3053503851 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" clin d'oeil
J'aurais plutôt dit "d'où le 'ça demande un peu de familiarité avec le code.'" clin d'oeil

_________________
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.
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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyMer 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 !
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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyJeu 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'
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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyJeu 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.
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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyJeu 15 Sep 2016 - 10:43

oups je l'avais enlevé, mais maintenant:
[résolu]script clavier virtuel Captur13
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]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyJeu 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.
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 : 68

Localisation : Olonne sur mer, Vendée

Date d'inscription : 19/04/2016


[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel EmptyJeu 15 Sep 2016 - 10:57

Super, ça fonctionne!
Merci
Revenir en haut Aller en bas
Contenu sponsorisé





[résolu]script clavier virtuel Empty
MessageSujet: Re: [résolu]script clavier virtuel   [résolu]script clavier virtuel Empty

Revenir en haut Aller en bas
 
[résolu]script clavier virtuel
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]dialog script
» [résolu]Probleme avec les script
» [résolu]Appeler une fonction depuis un autre Script ?
» Déplacements au clavier.
» [résolu]Comment importer un dessin papier/une photo dans AGS?resolu

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: