| [résolu]Function {Changer l'image d'une room} ? | |
|
|
Auteur | Message |
---|
titangebrian Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Localisation : Toulouse/Valenciennes/Lausanne
Date d'inscription : 07/02/2009
| Sujet: [résolu]Function {Changer l'image d'une room} ? Sam 21 Juil 2012 - 9:37 | |
| Salut tout le monde ! J'aimerais créer un petit effet mais n'y parviens pas : Voilà, lorsque mon personnage passe dans une room particulière, je souhaiterais que cette dernière soit noire ET lorsqu'il clique sur la lampe de poche dans son inventaire, qu'elle s'éclaire. Nul besoin d'effet qui suivent le personnage ou le curseur comme avec le module flashlight, ou de lumière mouvante... Non, juste l'image de room qui change lors de l'activation de l'item Lampe. -> Est-il possible de programmer un changement d'image de room pour ce faire, ou faut-il ruser et faire carrément changer le perso de room (j'aimerais mieux éviter de créer trop de room...) Cordialement et un excellent weekend
Dernière édition par titangebrian le Ven 27 Juil 2012 - 21:47, édité 1 fois |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Sam 21 Juil 2012 - 10:59 | |
| Salut, Il y a plusieurs solutions à ton problème : tu peux placer un calque ( overlay) de la taille de l'écran, de couleur noir de façon à couvrir la pièce. C'est plutôt simple et si tu n'utilises pas d'autre calque par-dessus, seuls les GUI devraient demeurer visibles. Le code donnerait quelque chose comme : - Code:
-
// Les variables hors de toute fonction, important ! Overlay* calque_noir; DynamicSprite* sprite_noir;
// Fonction "Player enters before fade-out" function room_Load() { // On récupère une image de la taille de l'arrière-plan sprite_noir = DynamicSprite.CreateFromBackground(); DrawingSurface* surf = sprite_noir.GetDrawingSurface(); surf.Clear(0); // On la remplit de noir surf.Release(); // Et on utilise cette image comme calque calque_noir = Overlay.CreateGraphical(0, 0, sprite_noir.Graphic); }
// Fonction "Player leaves room" function room_Leave() { // On libère la mémoire if (sprite_noir != null) { sprite_noir.Delete(); sprite_noir = null; } }
// La fonction du clic sur l'objet lumière de l'inventaire function Clic_Lumiere_Inventaire() { // Si le calque est affiché, il fait noir et on "allume" if (calque_noir != null) { calque_noir.Remove(); // Suppression du calque calque_noir = null; } else // Sinon, si le calque n'est pas affiché, on "éteint" (on l'affiche) calque_noir = Overlay.CreateGraphical(0, 0, sprite_noir.Graphic, false); } J'ai testé ce code qui fonctionne pas mal chez moi. Une autre solution qui n'utiliserait pas de sprites dynamiques ni de calques serait, si ton jeu est en haute résolution, de recourir à la fonction SetAmbientTint qui permet d'appliquer une teinte (le noir en l'occurrence pour toi) à tous les éléments de la pièce (hormis les GUI bien sûr). Mais j'ai toujours eu du mal à l'utiliser correctement cette fonction, va savoir pourquoi. Voilà, j'espère que tu trouveras ton bonheur avec l'une de ces deux méthodes _________________ 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 ! |
|
| |
titangebrian Adepte de la Grande Tasse Bleue
Nombre de messages : 75
Localisation : Toulouse/Valenciennes/Lausanne
Date d'inscription : 07/02/2009
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Lun 23 Juil 2012 - 9:02 | |
| Oups... Désolé Kitai, je n'avais pas vu ta réponse. Je te remercie ! Dans l'immédiat, j'ai trouvé une solution alternative ; cependant, le concept de l' overlay m'intéresse particulièrement ; je n'ai jamais essayé et cela reste donc encore un peu vague pour moi, mais... je pense que je vais très vite devoir y recourir, pour une chose... ou une autre. Encore merci |
|
| |
natacha001 C'est quoi la Tasse Bleue ?
Nombre de messages : 2
Date d'inscription : 08/08/2012
| Sujet: problème pour aller d'une room à une autre. Mer 8 Aoû 2012 - 13:04 | |
| Bonjour,je suis nouvelle je sais pas encore comment créer un nouveau topic. Je débute dans ags et je voulais savoir comment passer d'une "room" à une autre? Mon perso reste bloqué dans la première room. |
|
| |
-a-timburton-a- Cliqueur Emérite
Nombre de messages : 588
Date d'inscription : 17/05/2010
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Mer 8 Aoû 2012 - 13:20 | |
| |
|
| |
Vinkei Cliqueur Amateur
Nombre de messages : 314
Age : 43
Localisation : Nord
Date d'inscription : 19/01/2012
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Mer 8 Aoû 2012 - 16:09 | |
| Hello, au risque de paraître basique, voici ma méthode : j'importe un sprite noir de la taille du background en tant qu'objet pour la room et je le rend non cliquable - Code:
-
oMonSprite.Clickable=false; Ainsi, les hotspots en dessous restent accessibles. Puis, une fois la lumière allumée, je le désactive : - Code:
-
oMonSprite.Visible=false; _________________ "L'ennemi est bête! Il croit que c'est nous l'ennemi alors que c'est lui!!!"
|
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Mer 8 Aoû 2012 - 16:24 | |
| Salut natacha001. - natacha001 a écrit:
- Bonjour,je suis nouvelle je sais pas encore comment créer un nouveau topic.
Pour créer un nouveau topic, rends-toi dans la section du forum pertinente (par exemple la section questions-réponses) et regarde en haut ou en bas de la page : tu verras un bouton " Nouveau". Clique dessus et remplis les champs nécessaires (au moins "titre" et "message") et le tour est joué. - natacha001 a écrit:
- Je débute dans ags et je voulais savoir comment passer d'une "room" à une autre?
Mon perso reste bloqué dans la première room. Comme l'a conseillé tim, les tutos sont très bons. Pour changer de pièce, il faut utiliser la fonction ChangeRoom. - Vinkei a écrit:
- Hello, au risque de paraître basique, voici ma méthode :
j'importe un sprite noir de la taille du background en tant qu'objet pour la room et je le rend non cliquable - Code:
-
oMonSprite.Clickable=false; Ainsi, les hotspots en dessous restent accessibles.
Puis, une fois la lumière allumée, je le désactive : - Code:
-
oMonSprite.Visible=false; C'est l'équivalent de la solution du calque ( overlay) que j'évoquais plus haut, mais sans avoir à trop passer par le script (bien qu'au niveau gestion des ressources, les choses se passent quasiment à l'identique). Si tu utilises un objet pour "couvrir" le reste, ne pas oublier de bien mettre la baseline suffisamment bas. _________________ 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 ! |
|
| |
Vinkei Cliqueur Amateur
Nombre de messages : 314
Age : 43
Localisation : Nord
Date d'inscription : 19/01/2012
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Mer 8 Aoû 2012 - 16:31 | |
| - Kitai a écrit:
- Si tu utilises un objet pour "couvrir" le reste, ne pas oublier de bien mettre la baseline suffisamment bas.
Tu fais bien de le souligner!! C'est le genre de détails sur lesquels j'ai pu m'arracher les cheveux les premières fois! _________________ "L'ennemi est bête! Il croit que c'est nous l'ennemi alors que c'est lui!!!"
|
|
| |
natacha001 C'est quoi la Tasse Bleue ?
Nombre de messages : 2
Date d'inscription : 08/08/2012
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? Jeu 9 Aoû 2012 - 15:50 | |
| merci pour les infos |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu]Function {Changer l'image d'une room} ? | |
| |
|
| |
| [résolu]Function {Changer l'image d'une room} ? | |
|