| [résolu]function hHotspot_MouseMove | |
|
|
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]function hHotspot_MouseMove Lun 29 Aoû 2016 - 15:38 | |
| J'ai des fonctions "hHotspot_MouseMove" dans de nombreuses "room". J'ai écrit ce script dans une room: - Code:
-
function hHotspothaut_MouseMove() { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeHaut; } Mais j'aurais 4 eMode (haut, droit, gauche, bas) et environ 30 room, ne serait il pas possible de "généraliser" ce script dans le Globalscript, j'ai essayer mais ça ne fonctionne pas.
Dernière édition par dominouche le Ven 2 Sep 2016 - 7:59, édité 3 fois |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]function hHotspot_MouseMove Lun 29 Aoû 2016 - 16:30 | |
| Si c'est un comportement qui se passe sur n'importe quel hotspot, tu peux généraliser via la fonction repeatedly_execute() dans le global script. Ça devrait donner quelque chose comme ça (non testé) : - Code:
-
function repeatedly_execute() { Hotspot* hSurvole = Hotspot.GetAtScreenXY(mouse.x, mouse.y); if (hSurvole != hotspot[0] && mouse.Mode != eModeHaut) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeHaut; } } _________________ 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]function hHotspot_MouseMove Lun 29 Aoû 2016 - 16:38 | |
| Non le curseur changera que sur 4 hotspots: hHotspothaut hHotspotbas hHotspotgauche hHotspotdroit
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]function hHotspot_MouseMove Lun 29 Aoû 2016 - 16:49 | |
| Hm, un hotspot est spécifique à une pièce. Quand tu dis que tu en auras 4, tu veux dire que pour chaque pièce tu crées 4 hotspots systématiquement nommés "haut", "bas", "droite" et "gauche" ? Si c'est le cas, alors tu devrais pouvoir faire comme ça : - Code:
-
function repeatedly_execute() { Hotspot* hSurvole = Hotspot.GetAtScreenXY(mouse.x, mouse.y); if (hSurvole != hotspot[0]) { if (hSurvole.Name == "haut" && mouse.Mode != eModeHaut) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeHaut; } else if (hSurvole.Name == "bas" && mouse.Mode != eModeBas) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeBas; } else if (hSurvole.Name == "droite" && mouse.Mode != eModeDroite) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeDroite; } else if (hSurvole.Name == "gauche" && mouse.Mode != eModeGauche) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeGauche; } } } _________________ 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]function hHotspot_MouseMove Lun 29 Aoû 2016 - 18:07 | |
| En fait suivant la room j'aurais 1, 2,3 ou4 hotspot, c'est pour aider a la "navigation" dans chaque room en changeant le curseur par une flèche de direction au survol d'un hotspot, car j'ai fait essayer mon jeu et les joueurs sont un peut perdu dans la forêt. |
|
| |
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]function hHotspot_MouseMove Lun 29 Aoû 2016 - 18:20 | |
| j'ai essayer ton script et j'ai l'erreur: GlobalScript.asc(79): Error (line 79): Nested functions not supported (you may have forgotten a closing brace) La ligne 79 est la dernière ligne de ce script. - Code:
-
function repeatedly_execute() { // Put here anything you want to happen every game cycle, even when // the game is paused. This will not run when the game is blocked // inside a command like a blocking Walk() if (IsGamePaused() == 1) return;
// Put here anything you want to happen every game cycle, but not // when the game is paused. { Hotspot* hSurvole = Hotspot.GetAtScreenXY(mouse.x, mouse.y); if (hSurvole != hotspot[0]) { if (hSurvole.Name == "haut" && mouse.Mode != eModeHaut) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeHaut; }
}
}
function repeatedly_execute_always() {
Dernière édition par dominouche le Lun 29 Aoû 2016 - 19:19, é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]function hHotspot_MouseMove Lun 29 Aoû 2016 - 19:01 | |
| C'est parce que la fonction "repeatedly_execute" existe déjà dans ton global script.
Tu devrais chercher dans ton script où cette fonction est définie (tu peux faire un recherche textuelle -- Ctrl+F -- et coller "repeatedly_execute") puis y insérer le contenu de la ligne 2 à la ligne 20 depuis mon code. _________________ 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]function hHotspot_MouseMove Jeu 1 Sep 2016 - 16:32 | |
| Voila ce que j'ai fait, mais pas de changement de curseur ?? Est ce que je dois faire quelque chose dans le script de ma room? - Code:
-
function repeatedly_execute() { // Put here anything you want to happen every game cycle, even when // the game is paused. This will not run when the game is blocked // inside a command like a blocking Walk() if (IsGamePaused() == 1) return;
// Put here anything you want to happen every game cycle, but not // when the game is paused.
// Changement curseur au survol d'un hotspot.
{ Hotspot* hSurvole = Hotspot.GetAtScreenXY(mouse.x, mouse.y); if (hSurvole != hotspot[0]) { if (hSurvole.Name == "haut" && mouse.Mode != eModeHaut) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeHaut; } else if (hSurvole.Name == "bas" && mouse.Mode != eModeBas) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeBas; } else if (hSurvole.Name == "droite" && mouse.Mode != eModeDroite) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeDroite; } else if (hSurvole.Name == "gauche" && mouse.Mode != eModeGauche) { mouse.SaveCursorUntilItLeaves(); mouse.Mode = eModeGauche; } } } } |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]function hHotspot_MouseMove Jeu 1 Sep 2016 - 18:58 | |
| Je suis pas sûr de savoir d'où vient le problème.
Déjà, tu peux supprimer le { à la ligne 15 du code que tu as collé, et une des } fermantes à la fin (ligne 35 par exemple) : c'est superflu.
Est-ce que tu nommes bien tes hotspots "haut", "bas", "gauche", "droite" (tout en minuscule) ? _________________ 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]function hHotspot_MouseMove Jeu 1 Sep 2016 - 20:41 | |
| Pas grave, je vais mettre les fonctions dans les scripts des room
Merci |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]function hHotspot_MouseMove Jeu 1 Sep 2016 - 21:20 | |
| Et sinon, - Kitai a écrit:
- Est-ce que tu nommes bien tes hotspots "haut", "bas", "gauche", "droite" (tout en minuscule) ?
Je t'avoue que la solution de mettre les fonctions dans les scripts des pièces est très frustrante pour moi. Je testerai la méthode plus tard, parce que je veux tirer ça au clair. _________________ 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 ! |
|
| |
Arlann Cliqueur Amateur
Nombre de messages : 286
Date d'inscription : 06/04/2016
| Sujet: Re: [résolu]function hHotspot_MouseMove Ven 2 Sep 2016 - 7:42 | |
| - Kitai a écrit:
- Est-ce que tu nommes bien tes hotspots "haut", "bas", "gauche", "droite" (tout en minuscule) ?
Je précise car je me suis déjà fait avoir avec ça : Les noms que tu dois donner aux hotspots de tes rooms sont à rentrer dans "Description" et non pas dans "Name". Il peut y avoir confusion, mais quand tu appelles une propriété : hotspot/object/inventory/character.Name; le jeu retourne la String correspondante à ce que tu as rentré en "Description". Alors que "Name" précise le nom qui sera utilisé dans le script pour les fonctions. Sinon le code de Kitai devrait fonctionner parfaitement. |
|
| |
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]function hHotspot_MouseMove Ven 2 Sep 2016 - 7:58 | |
| Super Arlann !!! J'avais mis dans le nom Hotspot haut !! Alors qu'avec comme nom haut seulement ça fonctionne! Un grand merci à vous deux , car après 3 jours d' essais je voulais laisser tomber !! |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]function hHotspot_MouseMove | |
| |
|
| |
| [résolu]function hHotspot_MouseMove | |
|