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

Partagez | 
 

 Une room qui change radicalement de décor après une action

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: Une room qui change radicalement de décor après une action   Lun 24 Aoû 2015 - 10:10

Bonjour à tous!

Je m'arrache les cheveux sur ça !!
Voila, j'ai une room avec, disons, les murs bleus et un objet à activer. Je souhaite qu'une fois l'objet activé, l'ambiance de la room change, en gros un nouveau background, et qu'une nouvelle zone cliquable apparaisse.

1) Envoyer le player dans une nouvelle room me semble trop compliqué car je devrais recoder toutes les entrées de room.

2) La question la plus importante: dois-je utiliser le background, c'est a dire un nouveau background (un des 5 utilisables) ?

3) Comment est géré le background ? Est ce considéré comme une nouvelle room? Les hotspots du backhround de base sont ils conservés ?

Merci pour votre aide à tous car je sèche vraiment, j'essaie d'apprendre mais il y a encore trop de zones floues !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Une room qui change radicalement de décor après une action   Lun 24 Aoû 2015 - 10:36

Oui, la solution la plus simple est d'utiliser l'un des 4 autres background possible pour ta room. J'ai déjà fait ça sur WIMD2 et ça fonctionne très bien.

Je te donne une piste. Essaie d'en tirer quelque chose et si tu trouves pas, reviens ici on te guidera clin d\\\\'oeil
Wiki - setbackgroundframe grand sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Thebroch
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 474

Age : 16

Localisation : Vendée

Date d'inscription : 23/07/2015


MessageSujet: Re: Une room qui change radicalement de décor après une action   Lun 24 Aoû 2015 - 10:43

Bon j'ai aucune idée de comment on gère les backgrounds mais ta solution 1 est pas trop mal ,
tu crée un Template de la salle de ton choix et après tu l'importe comme une autre room , tu change le fond écran (il doit etre de la même taille ) et tu ajoute la hotspots , ce qui me semble une bonne idée. (si non les anciens n' hésitez pas a me le dire ^^ )

EDIT: j'avais pas vu la reponse de chefgeorges

_________________
Des amateurs... C'est ce que nous sommes tous, des amateurs, on ne vit jamais assez longtemps pour être autre chose.
Charlie Chaplin,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
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: Une room qui change radicalement de décor après une action   Lun 24 Aoû 2015 - 10:50

Ok ca marche merci pour votre aide je vais bidouiller..

Par contre juste une question le nouveau background est juste un fond ? Les hotspots du background principal seront toujours là ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Une room qui change radicalement de décor après une action   Lun 24 Aoû 2015 - 11:29

Oui c'est ça. A la base, le background principal et les 4 autres servent à faire un fond animé simple. Mais on peut tout-à-fait les détourner de cet usage premier clin d\\\\'oeil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
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: Une room qui change radicalement de décor après une action   Mar 25 Aoû 2015 - 12:10

Petite question, comment "appeler" le background dans le code ? et comment l'empêcher d'alterner entre le background principal et le secondaire ?

Je vais essayer de coder quelque chose comme ça (exemple):

Quand on utilise la pile sur le ventilo, tous les papiers de la pièce s'envolent (quel exemple!)
C'est à dire quand on utilise ipile sur le hotspot ventilo, le background principal avec toutes les feuilles de papier est remplacé par le second background sans feuilles et avec quelques objets renversés.

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: Une room qui change radicalement de décor après une action   Mar 25 Aoû 2015 - 12:30

C'est pas un peu brutal comme transition ? Tu as les moyens de faire une animation ou pas ?

Mais sinon, un truc du genre:
Code:
function oVentilo_UseInv()
{
  player.Walk(565, 404, eBlock);
  if (player.ActiveInventory == iPile) {
     player.LoseInventory(iPile);
     // rajoute ici pleins d'animations et d'effets sonores spectaculaires
     SetBackgroundFrame(2); // c'est cette ligne qui t’intéresse
  } else {
      DefaultInvInteraction(player.ActiveInventory);
  }
}
Attention, j'ai pu laisser quelques typos...
N’oublie pas de générer la fonction oVentilo_UseInv() avec dans l'éditeur !
Bon courage

_________________
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: Une room qui change radicalement de décor après une action   Mar 25 Aoû 2015 - 13:32

Super c'est bien cette fonction "setbackgroundframe" qui me manquait!

Par contre, j'essaie maintenant de bloquer la frame du background sur 2 une fois que l'action est passée, même quand le joueur rentre dans la pièce.
J'ai essayé ça :

Code:
function room_AfterFadeIn()
{
SetBackgroundFrame(0);
if (player.LoseInventory(ipile))
{
  SetBackgroundFrame(1);
}}

Mais du coup je perds ma pile dès que je rentre dans la pièce, rien de plus.

Comment fixer cette frame(2) ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Une room qui change radicalement de décor après une action   Mar 25 Aoû 2015 - 14:47

Tu y es presque ^^

Déjà je mettrai SetBackgroundFrame(0); dans function room_Load() et non dans function room_AfterFadeIn(), histoire d'éviter des petits "bugs" graphiques au chargement de ta room.

Code:
if (player.LoseInventory(ipile))
{
  SetBackgroundFrame(1);
}
Ce n'est pas au bon endroit. Là, à chaque entrée dans la pièce, AGS va chercher à vérifier une fois si en même temps tu perds un objet... ce qui est impossible, lol.

Vois plus simple : je présume que si tu as mis une ligne if (player.LoseInventory(ipile) c'est que tu as codé un truc du style : "si je clic sur tel objet ou hotspot, je perds ipile de mon inventaire". Et bien ajoute tout simplement ta ligne SetBackgroundFrame(1); à cet endroit (Dès que tu perds ton objet d'inventaire ipile, le background change)
(EDIT : j'avais pas lu la réponse précédente de Billbis, du coup je m'y perd un peu dans tes background. Tu pourrais préciser à quoi correspond SetBackgroundFrame(0); SetBackgroundFrame(1); et SetBackgroundFrame(2); ?)

Par contre, dès que tu reviendras dans cette pièce, AGS va charger SetBackgroundFrame(0); du coup perplexe
Il faut donc lui dire un truc du genre :
Code:
function room_Load()
{
if (player.HasInventory(ipile) == false) // vérifie si le player n'a pas l'objet ipile
  {
    SetBackgroundFrame(1);
  }
else
{
SetBackgroundFrame(0);
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
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: Une room qui change radicalement de décor après une action   Mar 25 Aoû 2015 - 17:39

Super très astucieux !!
Merci à vous pour votre aide, cela fait maintenant (et seulement) 4 jours que je suis entré dans le "monde merveilleux" du code, je n'en ai jamais fait avant et j'essaie de m'y faire petit à petit!

je n'avancerais pas aussi vite sans vous tous!!

Pour répondre à ta question, Billbis a proposé un exemple avec background principal (1) et secondaire (2), dans mon exemple c'était respectivement (0) et (1)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
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: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 10:28

Hello!

J'ai testé le code, par contre, très étrange, j'ai un "nested functions not supported"

Code:
function Room_Load()
{
  if (player.HasInventory(icitron) == false)
  {
    SetBackgroundFrame(1);
  }
  else
{
SetBackgroundFrame(0);
}}

Ici ce n'est pas une pile mais un citron

Est ce une bêtise de débutant ou est ce autre chose ? Car je ne vois vraiment pas d'ou ca peut venir.
PS: j'ai essayé avec }} et avec } à la fin, les deux ne marchent pas..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 488

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 10:58

As-tu essayé ça:

}
}

a la fin

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
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: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 11:32

Ca veux dire qu'il manque une "}" dans le script en question.
Cherche bien !
Si tu ne vois pas, poste ici tout le script. Le message d’erreur doit renvoyer une ligne, non ? C'est laquelle ? Le "}" manquant est au dessus.

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


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 13:07

Oui c'est l'oubli classique ^^
(et ça nous arrive tous !)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
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: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 13:58

"nested functions not supported" => le truc qui te colle des frissons chaque fois que ça apparaît.

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
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: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 16:15

Exactement Shai la, j'ai eu mon lot de frissons depuis hier !

Voici le code entier, maintenant j'ai un message d'erreur "erreur interne", qui me renvoie à la ligne 18 avec le Room load .. Je vais bien finir par y arriver à faire ce changement de background !!

Code:
// room script file

function hportedroite_AnyClick()
{
player.ChangeRoom(1);
}

function energie_UseInv()
{
  if (player.ActiveInventory == icitron)
  {
  player.LoseInventory(icitron);
  monbool2 = true;
}
}

function Room_Load()
{
  if (player.HasInventory(icitron) == false)
  {
    SetBackgroundFrame(1);
  }
  else
{
SetBackgroundFrame(0);
}
}
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: Une room qui change radicalement de décor après une action   Mer 26 Aoû 2015 - 17:17

Il semble que tes accolades soient bien ouvertes et refermées maintenant, donc plus de souci de ce côté là (tout du moins dans le code que tu as collé).

L'erreur pourrait éventuellement provenir d'une mauvaise correspondance entre le nom de la fonction associée à l'événement d'entrée dans la pièce dans la grille que tu vois lorsque tu cliques sur dans l'éditeur de pièce, et celui que tu as effectivement dans ton code. Est-ce que, par hasard, le nom dans la grille ne serait pas room_Load, avec un 'r' minuscule ?

PS : pour une meilleure lisibilité, essaie d'indenter les lignes systématiquement dans ton code. Ça t'aidera en particulier s'il te manque des }, comme ça :
Code:
// room script file

function hportedroite_AnyClick()
{
  player.ChangeRoom(1);
}

function energie_UseInv()
{
  if (player.ActiveInventory == icitron)
  {
    player.LoseInventory(icitron);
    monbool2 = true;
  }
}

function Room_Load()
{
  if (player.HasInventory(icitron) == false)
  {
    SetBackgroundFrame(1);
  }
  else
  {
    SetBackgroundFrame(0);
  }
}

_________________
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 En ligne
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: Une room qui change radicalement de décor après une action   Jeu 27 Aoû 2015 - 0:02

Merci à toi Kitai !! Il s'agissait en effet du R majuscule à mettre en minuscule!! Je l'ai changé plusieurs fois quand le code ne fonctionnait pas, ne sachant pas d'ou cela venait !!

Pour en revenir au background qui change:

J'ai réussi à obtenir ce que je voulais, c'est à dire un background (0) fixe, qui se change de façon définitive en background (1) après une action spécifique. Et ce même apres un retour dans la room. J'ai du utiliser une variable booleenne, mais je pense qu'il y a bien plus simple.
Pourtant, sans cela , j'avais:
-Soit le background(0) se remettai lors d'un quitter/retour room
-Soit le background (1) n'apparaissait pas apres l'interaction
-Soit le background (1) était déjà là avant l'interaction !

voici mon code, surement améliorable !

Code:
function energie_UseInv()
{
  if (player.ActiveInventory == icitron)
  {
  player.LoseInventory(icitron);
  SetBackgroundFrame(1);
  monbool2 = true;
}
}

function room_Load()
{
 if (monbool2)
  {
    SetBackgroundFrame(1);
  }
  else
{
SetBackgroundFrame(0);
}
}

Merci beaucoup pour votre aide, n'hésitez à me dire s'il est améliorable !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
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: Une room qui change radicalement de décor après une action   Jeu 27 Aoû 2015 - 11:55

Après plusieurs tests, je bloque sur la dernière partie du code.
L'apparition du background (1) s'accompagne de l'apparition d'une feuille, clickable, qui sera zoomée par le joueur pour la lire . J'ai donc fait une room supplémentaire pour cette feuille en gros plan.

Depuis quelques jours je me demande pourquoi utiliser des hotspots pour des portes etc, car je n'arrivais pas à les rendre non-clickable.
J'ai trouvé cela tout à l'heure , la fonction "enabled" pour désactiver un hotspot.

Pourtant, cela ne fonctionne pas dans mon code. Voici le déroulé de l'action (un peu farfelu les objets!) :

-Le joueur utilise un citron (objet ovoide) sur une sphère d'énergie.
-Quand il passe à l'action, le citron disparait de son inventaire, le background change pour un citron en suspension dans la sphère d'anergie.
-Une feuille apparait au sol (mon hotspot jusqu'alors inactif) en cliquant dessus , on la regarde en détail.
LE CODE :

Code:
function energie_UseInv()
{
  if (player.ActiveInventory == icitron)
  {
  player.LoseInventory(icitron);
  SetBackgroundFrame(1);
  monbool2 = true;
 
}
}

function room_Load()
{
  hfeuille.Enabled = false;
 if (monbool2)
  {
    SetBackgroundFrame(1);
    hfeuille.Enabled = true;
  }
  else
{
SetBackgroundFrame(0);
}
}

function hfeuille_AnyClick()
{
  player.ChangeRoom(6);
  }

Mon problème est que, lorsque l'on passe au background (1) , le hotspot de la feuille n'est toujours pas clickable, alors que je l'ai mis sur "true".
Et pourtant, si j'inverse les valeurs, cest a dire si je demande à AGS de rendre clickable le Hotspot avant l'action et inactif apres, cela fonctionne !!

PS: j'utilise un hotspot pour la feuille car :
1- elle apparait en meme temps que le background (1)
2-j'ai essayé avec un objet, et celui ci n'était clickable qu'une seule fois. C'est pour cela que je m'intéresse aux hotpots activé/ désactivé, car ils permettent de rester clickable ou non tout au long du jeu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chefgeorges
Cliqueur Emérite
Cliqueur Emérite


Nombre de messages : 500

Date d'inscription : 01/02/2008


MessageSujet: Re: Une room qui change radicalement de décor après une action   Jeu 27 Aoû 2015 - 16:59

Si j'ai bien suivi, tu mets simplement ton hfeuille.Enabled = true; dans ton premier code :
Code:
function energie_UseInv()
{
  if (player.ActiveInventory == icitron)
  {
  player.LoseInventory(icitron);
  SetBackgroundFrame(1);
  hfeuille.Enabled = true; // ici par exemple
  monbool2 = true;
}
}

Un truc que j'ai eu du mal à imprimer au début sur AGS c'est que les function sont vérifiées une fois par AGS. Par exemple, AGS vérifie une fois, au pré-chargement, ce qu'il y a dans function_room_Load() sourire (c'est pour ça qu'il y a aussi des Repeatedly execute qui vérifie à chaque cycle une action déterminée)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://instagram.com/ichefgeorges
Contenu sponsorisé




MessageSujet: Re: Une room qui change radicalement de décor après une action   Aujourd'hui à 17:20

Revenir en haut Aller en bas
 
Une room qui change radicalement de décor après une action
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» We Are Change Paris vs Le Siècle
» pb voitures qui change de prix ???
» [Salon] Bourse d'échange Orleans.
» pour qu'un personnage devient un objet ? ou change de vue
» Création d'une room

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: