Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [résolu]function hHotspot_MouseMove

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: [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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur 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


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]function hHotspot_MouseMove   Lun 29 Aoû 2016 - 16:38

Non le curseur changera que sur 4 hotspots:
hHotspothaut
hHotspotbas
hHotspotgauche
hHotspotdroit
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur 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


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur 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


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]function hHotspot_MouseMove   Jeu 1 Sep 2016 - 16:32

Voila ce que j'ai fait, mais pas de changement de curseur ?? uh
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;
        }
      }
    }
 }
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur 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


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: 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) ?
clin d\\\\'oeil

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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Arlann
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 136

Date d'inscription : 06/04/2016


MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: 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 !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [résolu]function hHotspot_MouseMove   Aujourd'hui à 8:00

Revenir en haut Aller en bas
 
[résolu]function hHotspot_MouseMove
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: