| Détecter si une musique n'est pas jouée... | |
|
|
Auteur | Message |
---|
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Détecter si une musique n'est pas jouée... Ven 5 Fév 2016 - 17:36 | |
| Voilou un autre problème Je voudrai créer une ligne de code qui dit en gros : si "Telle musique" n' est pas joué, alors lancer justement "Telle musique"... vous m'suivez, lol. En fait j'ai une pièce qui fait office d'étage d'hotel. Quand on sort d' une chambre ou de l'ascenseur, je voudrai que quelque soit la musique jouée, elle se coupe et qu'AGS joue la musique dédiée à cette room-étage (pour simplifier les lignes de codes). J'ai pensée à ça : - Code:
-
function room_AfterFadeIn() { if (aEtageMusique.IsAvailable == false){ aEtageMusique.Play();} } Mais ça marche pô |
|
| |
Billbis Disciple de la Grande Tasse Bleue
Nombre de messages : 1346
Date d'inscription : 10/05/2012
| Sujet: Re: Détecter si une musique n'est pas jouée... Ven 5 Fév 2016 - 17:53 | |
| Bin, pourquoi tu lance pas la musique d'office, sans rien vérifier du tout? |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Détecter si une musique n'est pas jouée... Ven 5 Fév 2016 - 18:50 | |
| Je seconde la question de Billbis. À part ça, IsAvailable vérifie si le fichier son correspondant est présent sur l'ordinateur du joueur (AGS permet de proposer la partie audio séparément du reste du jeu). Enfin, voici une petite fonction qui retourne le canal audio sur lequel une musique est jouée si elle l' est, et null sinon : - Code:
-
AudioChannel* IsPlaying(this AudioClip*) { AudioChannel* channel; int i = 0; while (i < System.AudioChannelCount) { channel = System.AudioChannels[i]; if (channel.PlayingClip != null && channel.PlayingClip == this) return channel; i++; } return null; } Un exemple d'utilisation où on remplace toutes les instances qui jouent aCriDePlainte par aCriDeSatisfaction (dans un public par exemple) : - Code:
-
AudioChannel* channel = aCriDePlainte.IsPlaying(); while (channel != null) { channel.Stop(); aCriDeSafisfaction.Play(); channel = aCriDePlainte.IsPlaying(); } _________________ 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 ! |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Détecter si une musique n'est pas jouée... Sam 6 Fév 2016 - 0:01 | |
| - Billbis a écrit:
- Bin, pourquoi tu lance pas la musique d'office, sans rien vérifier du tout?
Parce que si le personnage entre dans une chambre, puis revient dans le couloir de l'étage, la musique recommence du début et ça m'embête D'autant que certaines chambres n'auront pas de zik spécifiques, mais d'autres oui. |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Détecter si une musique n'est pas jouée... Sam 6 Fév 2016 - 0:10 | |
| - chefgeorges a écrit:
- Parce que si le personnage entre dans une chambre, puis revient dans le couloir de l'étage, la musique recommence du début et ça m'embête
D'autant que certaines chambres n'auront pas de zik spécifiques, mais d'autres oui. Tu veux dire que certaines chambres auront la même musique que la musique du couloir, c' est ça ? Dans ce cas tu peux utiliser ma fonction qui va bien, ça devrait faire l'affaire je pense. _________________ 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 ! |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Détecter si une musique n'est pas jouée... Sam 6 Fév 2016 - 11:49 | |
| - Citation :
- Tu veux dire que certaines chambres auront la même musique que la musique du couloir, c'est ça ?
Oui c' est ça |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Détecter si une musique n'est pas jouée... Lun 8 Fév 2016 - 13:04 | |
| Je reviens vers vous et plus particulièrement Kitai J'ai un peu de mal avec ton 2ème code. Je comprends l'idée mais mes limites en code m’empêche de l'adapter Je veux mettre ce code dans la room étage, sachant que la room précédente (ascenseur) a elle aussi une musique propre, et que certaines room chambre de l'étage ont des musiques spécifiques, mais pas toutes. Du coup... bin j'ai un peu de mal à comprendre la comment adapter le code :'( (Soyez indulgent, je suis un peu souffrant... j'ai déjà un gros fail à mon actif. N'est-ce pas Billbis, lol) |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Détecter si une musique n'est pas jouée... Lun 8 Fév 2016 - 14:11 | |
| Mon code est un exemple d'utilisation un peu complexe de la fonction, mais en temps normal tu l'utilises très simplement : - Code:
-
function room_AfterFadeIn() { if (aEtageMusique.IsPlaying() == null) { aEtageMusique.Play();} } } _________________ 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 ! |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Détecter si une musique n'est pas jouée... Lun 8 Fév 2016 - 18:04 | |
| Par contre, j'ai l'erreur suivante du coup - Code:
-
Failed to save room room6.crm; details below room6.asc(74): Error (line 74): '.IsPlaying' is not a public member of 'AudioClip'. Are you sure you spelt it correctly (remember, capital letters are important)?
Je cherche à comprendre le problème... (je reviens si je trouve...) |
|
| |
Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Détecter si une musique n'est pas jouée... Lun 8 Fév 2016 - 18:33 | |
| Tu as bien copié-collé le code que j'ai donné pour définir la fonction IsPlaying ? Si tu l'as placée dans le global script et que tu veux l'utiliser ailleurs (genre dans les scripts de pièce) tu dois l'importer dans le header du global script avec - Code:
-
import AudioChannel* IsPlaying(this AudioClip*); _________________ 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 ! |
|
| |
chefgeorges Cliqueur Emérite
Nombre de messages : 502
Date d'inscription : 01/02/2008
| Sujet: Re: Détecter si une musique n'est pas jouée... Lun 8 Fév 2016 - 18:46 | |
| C'était ça Ahlala... fail n°2, lol Faut dire aussi que je commence à peine à utiliser le header du global script, et oui ! Avant je ne l'utilisais pas (comme les propriétés d'ailleurs). Merci pour toutes ces explications, ça me fait progresser |
|
| |
Contenu sponsorisé
| Sujet: Re: Détecter si une musique n'est pas jouée... | |
| |
|
| |
| Détecter si une musique n'est pas jouée... | |
|