|
| [résolu]fonction, condition | |
| | 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]fonction, condition Dim 24 Juil 2016 - 18:04 | |
| Bonjour, grace à Ariann et le module Dragdrop, j'ai réussi à mettre en place une énigme. Le joueur devra mettre en place les images d'oiseaux sur le nom correspondant, si l'ordre est bon, cela déclenchera un texte ou un évènement. J'ai beau chercher dans les tutoriels et les forums, je ne trouve pas comment faire. Dois-je mettre sur les noms un hotspots, une région ??? Comment créer la condition pour déclencher la suite. Je ne suis pas encore très doué, mais je persévère!!! Merci pour votre aide.
Dernière édition par dominouhe le Mar 26 Juil 2016 - 6:47, é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]fonction, condition Lun 25 Juil 2016 - 3:32 | |
| Salut dominouhe, Voilà un proposition :
- Dans ta pièce, dessine pour chaque case une région spécifique correspondant à la zone dans laquelle devra se trouver le coin bas-gauche de chaque image (idéalement ce serait juste un point, mais les joueur.se.s ne seront probablement pas si précis.es)
- Dans la fonction repeatedly_execute du module Dragdrop, insère une ligne avec l'instruction CallRoomScript(0); en dessous de dragdrop.isDragging = false;
- Dans le script de ta pièce, insère le code suivant :
- Code:
-
function on_call (int valeur) { if (valeur == 0) { if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] && Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] && Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] && Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] && Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] && Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) { // Le code que tu veux exécuter lorsque le placement est bon
} } }
Tu auras compris que j'ai supposé certains noms pour tes images-objets, mais c'est à toi d'adapter avec les noms que tu leur as vraiment donnés. Même chose pour les numéros de région que j'ai assignés de gauche à droite et de haut en bas. _________________ 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]fonction, condition Lun 25 Juil 2016 - 9:42 | |
| Super, merci Kitai (et en plus tu connais bien les oiseaux des marais), je ne risquais pas trouver tout seul. Que peux tu me conseiller pour apprendre mieux cette programmation?
Dernière édition par dominouhe le Lun 25 Juil 2016 - 17:17, édité 1 fois |
| | | 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]fonction, condition Lun 25 Juil 2016 - 10:07 | |
| Ce n'est pas possible !!! Maintenant j'ai une erreur avec "else". - Code:
-
// room script file function on_call (int valeur){ if (valeur == 0) { if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] && Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] && Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] && Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] && Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] && Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) { // Le code à exécuter lorsque le classement est bon Display ("Bravo le classement est bon!"); // Le code à exécuter lorsque le classement n'est pas bon else { Display ("Désolé il y a au moins une erreur dans le classement!"); } } } } Failed to save room room1.crm; details below room1.asc(15): Error (line 15): PE04: parse error at 'else' Je commence à ne plus avoir de cheveux à force de me les arracher!!!! |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]fonction, condition Lun 25 Juil 2016 - 10:25 | |
| Bin compte tes "}" aussi, tu auras moins d’erreurs ! Il en manque une ou deux avant le else. |
| | | 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]fonction, condition Lun 25 Juil 2016 - 10:42 | |
| Si je met ça: - Code:
-
// room script file function on_call (int valeur){ if (valeur == 0) { if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] && Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] && Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] && Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] && Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] && Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) { // Le code à exécuter lorsque le classement est bon Display ("Bravo le classement est bon!"); } } } ça fonctionne. Si je rajoute else: - Code:
-
// room script file function on_call (int valeur){ if (valeur == 0) { if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] && Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] && Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] && Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] && Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] && Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) { // Le code à exécuter lorsque le classement est bon Display ("Bravo le classement est bon!"); // Le code à exécuter lorsque le classement n'est pas bon else { Display ("Désolé il y a au moins une erreur dans le classement!"); } } } } erreur !!! Je ne vois pas où il manque des } |
| | | Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: [résolu]fonction, condition Lun 25 Juil 2016 - 11:05 | |
| Juste avant le else. La structure, c'est: - Code:
-
if (condition) { // des trucs } else { // d'autres trucs }
Dernière édition par Billbis le Lun 25 Juil 2016 - 13:02, édité 1 fois |
| | | 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]fonction, condition Lun 25 Juil 2016 - 11:35 | |
| Merci Billbis, c'était pourtant simple !!!!
Serait il possible que le message "Désolé il y a au moins une erreur dans le classement!", n’apparaisse que lorsque les 6 images sont en place, car pour l'instant le message s'affiche après le déplacement de chaque "objet"?
Dernière édition par dominouhe le Lun 25 Juil 2016 - 17:18, édité 1 fois |
| | | 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]fonction, condition Lun 25 Juil 2016 - 16:53 | |
| Voia ce que j'ai trouvé comme solution, y a t'il quelque chose de plus simple? - Code:
-
// room script file function on_call (int valeur){ if (valeur == 0) { if (Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y) == region[1] && Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y) == region[2] && Region.GetAtRoomXY(oAigrette.X, oAigrette.Y) == region[3] && Region.GetAtRoomXY(oAvocette.X, oAvocette.Y) == region[4] && Region.GetAtRoomXY(oHeron.X, oHeron.Y) == region[5] && Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y) == region[6]) { // Le code à exécuter lorsque le classement est bon Display ("Bravo le classement est bon!"); } // Le code à exécuter lorsque le classement n'est pas bon else if ( oChevalierGambette.X >441 && oMouetteRieuse.X >441 && oAigrette.X >441 && oAvocette.X >411 && oHeron.X >411 && oEchasseBlanche.X){ Display ("désolé il y a au moins une erreur dans le classement!"); } } } |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]fonction, condition Lun 25 Juil 2016 - 21:46 | |
| - dominouhe a écrit:
- Voia ce que j'ai trouvé comme solution, y a t'il quelque chose de plus simple?
Plus simple je sais pas, mais ce qui suit est je pense plus "propre", plus proche de ce que tu recherches : - Code:
-
// room script file function on_call (int valeur){ if (valeur == 0) { // On récupère la région sous chaque image Region* rChevalierGambette = Region.GetAtRoomXY(oChevalierGambette.X, oChevalierGambette.Y), rMouetteRieuse = Region.GetAtRoomXY(oMouetteRieuse.X, oMouetteRieuse.Y), rAigrette = Region.GetAtRoomXY(oAigrette.X, oAigrette.Y), rAvocette = Region.GetAtRoomXY(oAvocette.X, oAvocette.Y), rHeron = Region.GetAtRoomXY(oHeron.X, oHeron.Y), rEchasseBlanche = Region.GetAtRoomXY(oEchasseBlanche.X, oEchasseBlanche.Y);
// Si toutes les images ont été placées sur une région... if (rChevalierGambette != region[0] && rMouetteRieuse != region[0] && rAigrette != region[0] && rAvocette != region[0] && rHeron != region[0] && rEchasseBlanche != region[0]) {
// Si chaque image est placée sur sa région... if (rChevalierGambette == region[1] && rMouetteRieuse == region[2] && rAigrette == region[3] && rAvocette == region[4] && rHeron == region[5] && rEchasseBlanche == region[6]) { Display ("Bravo le classement est bon!");
} // Sinon, il y a au moins deux images qui sont mal placées (car il ne peut pas y en avoir une seule) else {
Display ("désolé il y a au moins une erreur dans le classement!");
} } } } _________________ 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]fonction, condition Mar 26 Juil 2016 - 6:36 | |
| Merci Kitai. Recupérer les régions: J'ai encore appris quelque chose! - Citation :
- / Sinon, il y a au moins deux images qui sont mal placées (car il ne peut pas y en avoir une seule)
Mais oui bien sur, je n'y avait pas pensé. |
| | | Contenu sponsorisé
| Sujet: Re: [résolu]fonction, condition | |
| |
| | | | [résolu]fonction, condition | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |