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

Partagez | 
 

 Evènement dans une room déclenche une porte dans une autre room.

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


Nombre de messages : 51

Date d'inscription : 19/08/2015


MessageSujet: Evènement dans une room déclenche une porte dans une autre room.   Mar 25 Aoû 2015 - 12:32

Salut à tous!

J'aimerais savoir si, niveau code, on peut faire appel à des objets ou autre venant d'une autre room.

Par exemple, j'aimerais faire:
Le joueur possède un prisme dans son inventaire, il le place dans une cavité. Un bruit de fait entendre. De retour dans la salle principale, un enorme pan de mur s'est écroulé.

Concrètement, j'ai un "use inventory on hotspot" qui va dérouler toutes ses conséquences dans le code.
-faire apparaitre le prisme sur le mur ou le joueur l'a placé
-faire jouer un son
-faire changer le background de la salle principale pour le background avec un mur écroulé.

(je parle de background et non d'objet puisque 'il s'agit d'une partie importante du décor à modifier)

Puis-je appeler le changement de background dans une autre room depuis mon "use inventory on hotspot" ?

Merci à vous tous pour votre patience à toute épreuve !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Mar 25 Aoû 2015 - 13:07

Le plus simple est de faire une variable globale booléenne (panneau Explore Projects -> Global Variables) par défaut sur false. Quand tu "use inventory on hotspot", tu la passe sur true.
Ensuite, dans la room principale dans un room_load_before_fadein, tu code tout les changement affectant la pièce principale sous un if.
Code:
function room_Load()
{
 if (monBool) {
    // du code ici, par exemple
    SetBackgroundFrame(2);
    monBool = false; // pas nécessaire, mais permet de ne pas relancer le code a chaque fois.
 }
}

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
paperbackwriter
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 51

Date d'inscription : 19/08/2015


MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Mar 25 Aoû 2015 - 17:31

Salut!
J'ai testé tout ça c'est une super idée le booléen!
par contre je ne comprend pas, si le monbool est "false" , pour qu'il s'active il faut le passer en "true",

Or dans le code on ecrit juste "if monbool) , sans préciser "true" ?
AGS comprend que lorqusqu'on appelle Monbool, c'est forcément pour demander son inverse ?

Je ne sais pas si je suis très clair mais désolé, questions de débutant sourire
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: Evènement dans une room déclenche une porte dans une autre room.   Mar 25 Aoû 2015 - 18:31

paperbackwriter a écrit:
par contre je ne comprend pas, si le monbool est "false" , pour qu'il s'active il faut le passer en "true"

Billbis a écrit:
Quand tu "use inventory on hotspot", tu la passe sur true.

C'est-à-dire que dans les interactions du hotspot ( ) quand tu cliques sur "Use inventory on hotspot" ça t'envoie dans la fonction associée, et dans cette fonction tu places la ligne
Code:
monBool = true;

_________________
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
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Mar 25 Aoû 2015 - 21:09

En fait le code exact complet est :
Code:

if (monBool == true){
SetBackgroundFrame(2);
monBool = false;
}
Mais si tu mets juste
Code:
if(monBool){
AGS reconnaît le code comme "== true". Ca va plus vite mais perso je ne l'utilise pas, par souci de clarté.

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Mer 26 Aoû 2015 - 12:13

Shai-la a écrit:
AGS reconnaît le code comme "== true". Ca va plus vite mais perso je ne l'utilise pas, par souci de clarté.

Alors, je pinaille, mais non, non, et non, je ne suis pas d'accord. C'est l’inverse.

"if(x)" va exécuter un code si et seulement si x est (littéralement) true, pas si il est "== true".
Ce que fait l'opérateur "==", c'est tester si la valeur de la variable à gauche est identique à la valeur de la variable à droite, et retourner "true" si c'est le cas, ou "false" si ce n'est pas le cas. Ainsi :
Code:
if(monBool == true) {...}
est interprété comme ceci par l'ordinateur:
Code:
temporary_bool = monBool == true;
if(temporary_bool) {...}
Ce qui est plus long à exécuter que le simple:
Code:
if(monBool){...}
La solution "if(monBool == true)" est peut-être plus simple à lire pour les non programmeur, mais une fois qu'on à l'habitude, on sait que "if(monBool)" implique que mon bool est un booléen, et donc le code apparait assez clair.

De même, et pour la même raison, pour vérifier qu'un booléen est faut, on préfèrera "!" à "== false" :
Code:
if(!monBool) {...}
// et pas
if(monBool == false) {...}

Mais bien sur, toute ces opérations auront le même résultat, et la différence de temps de calcul et d'usage de la mémoire est insignifiantes, et tout ceci n'est bien que pinaillages et conventions.

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
Contenu sponsorisé




MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Aujourd'hui à 19:15

Revenir en haut Aller en bas
 
Evènement dans une room déclenche une porte dans une autre room.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dark-Guigui, une plume dans la main, un baobab dans l'autre.
» [Règles à lire] Soumettre un niveau dans la sphère (Membres)
» Besoin de porte executive
» Post pour recrutement dans la guilde Deus Solaris dans Dofus
» En balade a GT1... Petites questions!

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: