Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Sortie PlayStation 5 Pro : où ...
Voir le deal

 

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

Aller en bas 
4 participants
AuteurMessage
paperbackwriter
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
paperbackwriter


Nombre de messages : 51

Date d'inscription : 19/08/2015


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMar 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
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMar 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.
 }
}
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
paperbackwriter
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
paperbackwriter


Nombre de messages : 51

Date d'inscription : 19/08/2015


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMar 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
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


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMar 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 ( Evènement dans une room déclenche une porte dans une autre room. 3053503851 ) 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;
Revenir en haut Aller en bas
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
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMar 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é.
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. EmptyMer 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.
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Contenu sponsorisé





Evènement dans une room déclenche une porte dans une autre room. Empty
MessageSujet: Re: Evènement dans une room déclenche une porte dans une autre room.   Evènement dans une room déclenche une porte dans une autre room. Empty

Revenir en haut Aller en bas
 
Evènement dans une room déclenche une porte dans une autre room.
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: