Salut
Christouf, et bienvenue ici. N'hésite pas à
nous en dire plus sur toi et tes projets si le cœur t'en dit (pas d'obligation)
- Christouf a écrit:
- C'est après plus de 24h de galère sur ce merveilleux site (et d'autres) m’éclairant depuis bientôt 2 mois dans le tunnel très obscure, et très profond de la programmation de mon premier jeu, que je me permet de faire appel à votre bon coeur, votre générosité et votre patience.
Comment puis-je faire apparaitre cet objet?
Je ne peux que compatir, étant moi-même passé par là. D'autant plus que j'ai la réponse à ton problème dès que je lis ton code, ce qui doit être encore plus frustrant !
Pour une raison que je ne m'explique pas tout à fait, les noms de script des objets dans AGS sont interprétés selon la pièce dans laquelle se trouve le joueur. Ça signifie que de façon générale, tu ne peux pas les utiliser dans le Global Script (car celui-ci est "au-dessus" de toute pièce). Par ailleurs la fonction
ChangeRoom ne s'exécute pas instantanément et le code que tu mets juste après affecte toujours la pièce dans laquelle se trouve le joueur avant le changement de pièce.
Ce que tu dois donc faire, c'est placer ton instruction
- Code:
-
oPlumes.visible=true;
dans le script de la pièce de destination (0 vu ton code). Mais pas n'importe où évidemment. J'imagine que c'est un objet qui n'est pas visible au début du jeu, tu ne peux donc pas simplement mettre cette instruction dans la fonction de chargement de la pièce juste comme ça. Ce que tu peux faire en revanche, c'est utiliser les
variables globales, et plus précisément une variable globale
booléenne qui peut donc valoir
true ou
false. Mettons que tu nommes cette variable
plumesVisibles et que tu la règles à
false par défaut dans l'éditeur de variables globales. Alors dans le code que tu as posté ici, tu peux remplacer ton instruction en rouge par l'instruction suivante :
- Code:
-
plumesVisibles = true;
Ensuite, dans la fonction de chargement de ta pièce 0, tu peux ajouter le code suivant :
- Code:
-
if (plumesVisibles == true) oPlumes.Visible = true;
(Remarque la majuscule à
Visible)
Voilà, j'espère que tu t'en sortiras avec mes explications. Sinon, n'hésite pas à demander des clarifications !
PS : pour mettre le code en forme comme je le fais sur le forum, utilise la balise
[code ]place ton code ici[/code ] (sans les espaces bien évidemment)