Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.99 €
Voir le deal

 

 [Résolu] Déclencher une action qui active un hotspot

Aller en bas 
3 participants
AuteurMessage
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[Résolu] Déclencher une action qui active un hotspot Empty
MessageSujet: [Résolu] Déclencher une action qui active un hotspot   [Résolu] Déclencher une action qui active un hotspot EmptyLun 3 Fév 2014 - 12:28

Bonjour,

Je tente de bidouiller du code pour faire l'action suivante : Tant que le joueur n'a pas interagi avec hTelephone, le hotspot hPorteBureau est "false".

Code:
function hTelephone_Interagir ()
if (Interact with hotspot) {
hPorteBureau.Enabled = true;
}
else {
hPorteBureau.Enabled = false;
}

Mais ça plante. Ma syntaxe doit être mauvaise. Au passage si vous connaissez de bons tutos sur les scripts je suis preneur. Car l'aide en ligne est surtout utile si on maitrise le langage de programmation utilisé par AGS... ce qui n'est pas mon cas, lol.

NB: je suis sur AGS 3.2.2 fr


Merci d'avance clin d'oeil


Dernière édition par chefgeorges le Lun 3 Fév 2014 - 14:11, édité 1 fois
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
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] Déclencher une action qui active un hotspot Empty
MessageSujet: Re: [Résolu] Déclencher une action qui active un hotspot   [Résolu] Déclencher une action qui active un hotspot EmptyLun 3 Fév 2014 - 13:38

Je vois que tu as tenté ta chance en spéculant sur l'existence d'une variable "Interact with hotspot", ce qui, même si ça avait été possible, aurait eu une chance sur des millions d'aboutir ^^. D'abord, il faut savoir que le nom d'une variable ne peut pas contenir d'espace. Ensuite, pour que ta variable fonctionne il faut d'abord la déclarer, et définir sa valeur le moment venu. Deux solutions : soit tu as besoin d'utiliser ta variable dans différents scripts, et le plus simple est alors de créer une Variable Globale, ce qui est possible en passant par l'arborescence générale (de la même manière que tu crée un personnage, une room ou autre, en gros). Si tu as besoin de vérifier ta variable uniquement dans le script de la room, ce qui semble le cas, alors tu peux la déclarer directement dans ce script, tout en haut de celui-ci et en dehors de toute fonction.

Bon en fait je viens de me rendre compte que dans ton cas, tu n'as même pas besoin de créer de variable. Je laisse quand même ce que je viens de dire car ça pourra te servir. Pour plus d'infos sur les variables, tu peux aller voir un des très bons tutos vidéos de Crazy Legs qui évoque les cas les plus simple. Cela dit il existe tout un tas de types de variables et d'utilisation différentes. Je pense que tu peux également trouver des infos sur l'aide en ligne mais je n'arrive pas à charger la page tout de suite. Peut-être que ça mériterait un tuto supplémentaire pour en comprendre toutes les subtilités, je vais y réfléchir.

Bref, je me suis un peu éloigné, revenons à nos moutons. Dans ton cas, tu te compliques simplement la vie. Tout ce qui se trouve dans la fonction hTelephone_Interagir() sera exécuté à chaque fois que le joueur cliquera sur ce hotspot en mode Interact. Donc il suffit de faire :
Code:
 function hTelephone_Interagir () {
        hPorteBureau.Enabled = true;
            }

Et c'est tout ! Enfin il faut quand même que ton hotspot soit désactivé au début. Je n'ai pas AGS sous la main et je ne sais plus si on peut désactiver par défaut un hotspot dans ses options, si ce n'est pas le cas il suffit de créer dans la room un event "Premier chargement" et de désactiver l'hotspot dans la fonction créée :
Code:
function room_PermChargement { //Je ne me souviens plus du nom exact
hPorteBureau.Enabled = false;
}


Voilà, je dois filer donc je n'ai pas trop le temps de détailler sur les tutos, mais tu trouveras déjà pas mal de choses dans cette liste.

N'hésite pas si tu as besoin de précisions sur tout ça, désolé j'ai peut-être écrit de manière assez décousue confus

_________________
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] Déclencher une action qui active un hotspot Empty
MessageSujet: Re: [Résolu] Déclencher une action qui active un hotspot   [Résolu] Déclencher une action qui active un hotspot EmptyLun 3 Fév 2014 - 13:55

Salut chefgeorges,

NOTE : je vois que valoulef a posté une réponse lorsque je rédigeais la mienne. Je laisse tout de même ce que j'étais en train d'écrire, ça peut pas faire de mal, même si ça rejoint en très grande partie ce qu'a dit valoulef.

Je ne sais pas trop où tu as trouvé cette condition "Interact with hotspot" à placer dans les parenthèses du if, mais ça ne marche pas comme ça clin d'oeil

Si je reformule ce que tu souhaites, c'est simplement que la zone interactive hPorteBureau ne soit activée qu'à partir du moment où on a interagi avec hTelephone. Autrement dit, tu veux que la propriété Enabled de hPorteBureau soit sur false au début du jeu et qu'elle passe sur true lorsque le joueur interagit avec hTelephone.

Tu es sur la bonne voie avec le code que tu as posté, c'est surtout ta condition qui ne marche pas. En fait tu n'as pas besoin de condition du tout puisque tu es dans la fonction qui est appelée lorsque le joueur interagit avec hTelephone : le code que tu y places sera donc nécessairement exécuté lors d'une interaction avec la zone interactive. Tu peux donc te contenter de placer directement le code d'activation de hPorteBureau dedans :
Code:
function hTelephone_Interagir ()
  { // Attention à bien placer cette accolade pour "ouvrir" la fonction
      hPorteBureau.Enabled = true; // Activation de la zone interactive
  } // Et celle-ci pour "fermer" la fonction

On a fait une partie de ce que tu veux : activer la zone interactive lorsqu'on utiliser le téléphone. Maintenant il faut aussi s'assurer que hPorteBureau ne soit pas activé au début du jeu. Pour cela on utilise la fonction game_start :
Code:
function game_start()
  {
      hPorteBureau.Enabled = false; // Désactive la zone interactive au tout début du jeu
  }

chefgeorges a écrit:
Au passage si vous connaissez de bons tutos sur les scripts je suis preneur. Car l'aide en ligne est surtout utile si on maitrise le langage de programmation utilisé par AGS... ce qui n'est pas mon cas, lol.
En fait je pense qu'une fois que tu maîtrises un langage de programmation impératif et éventuellement orienté objet (javascript, PHP, C++, etc.), l'aide d'AGS est relativement suffisante en plus de l'analyse des scripts qui se trouvent dans les projets de démonstration.
Malheureusement je ne connais pas de bon tutoriel pour apprendre la programmation "en général", et c'est vrai que c'est pas évident d'apprendre dans l'abstrait, et vu que pour appliquer il faut un langage de programmation en particulier...
À une époque Crazy Legs écrivait un tutoriel pour apprendre à programmer avec AGS 3 sur le SiteDuZéro (depuis OpenClassRooms), mais je pense qu'il a malheureusement un peu abandonné le projet.

chefgeorges a écrit:
NB: je suis sur AGS 3.2.2 fr
Voilà qui fait plaisir à lire sourire

_________________
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
chefgeorges
Cliqueur Emérite
Cliqueur Emérite
chefgeorges


Nombre de messages : 502

Date d'inscription : 01/02/2008


[Résolu] Déclencher une action qui active un hotspot Empty
MessageSujet: Re: [Résolu] Déclencher une action qui active un hotspot   [Résolu] Déclencher une action qui active un hotspot EmptyLun 3 Fév 2014 - 14:09

Merci beaucoup à vous deux. Ça m'aide beaucoup à comprendre la "logique" d'AGS sourire

Pour info, je me suis en fait emmêler les pinceaux dans l'aide en ligne, lol  rougit

Valoulef a écrit:
Peut-être que ça mériterait un tuto supplémentaire pour en comprendre toutes les subtilités, je vais y réfléchir.
C'est vrai que pour un novice en programmation, ce serait un petit plus appréciable clin d'oeil

PS: j'ai édité le titre du topic qui correspond mieux aux réponses.
Revenir en haut Aller en bas
http://instagram.com/ichefgeorges
Contenu sponsorisé





[Résolu] Déclencher une action qui active un hotspot Empty
MessageSujet: Re: [Résolu] Déclencher une action qui active un hotspot   [Résolu] Déclencher une action qui active un hotspot Empty

Revenir en haut Aller en bas
 
[Résolu] Déclencher une action qui active un hotspot
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]un objet n'est pas visible après être activé
» une action pas si simple [Résolu]
» [résolu] Peut-on activer un hotspot depuis un dialogue ?
» [résolu]Vérifier si un objet/hotspot/personnage a déjà été cliqué
» [Résolu] click non actif sur gui inventaire et après interraction hotspot

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: