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

Partagez | 
 

 Une Zik pour juste pour la baston !?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Une Zik pour juste pour la baston !?   Sam 1 Aoû 2015 - 8:44

Une tite question...

Je ne sais pas bien comment fonctionne les codes pour la musique, alors je vous demande.
Voilà mon projet:

A chaque combat une musique démarre : tin tintintin .. Un truc pour mettre dans l'ambiance quoi.
Et une fois le combat terminé, la musique initiale de la pièce reprendrait là où elle en était.


Comment faire ça ?
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 Zik pour juste pour la baston !?   Sam 1 Aoû 2015 - 10:45

Salut filoulefilou

la commande pour une musique

aTropical.Play(eAudioPriorityHigh, eRepeat) ; ou eRepeat la lance en repetition continue

aTropical.Play(eAudioPriorityNormal, eOnce); ou eOnce la joue une fois

aTropical.Stop() ; la commande pour l'arreter

tu peux lancer une musique en repetition et une autre une fois pour le combat par exemple

_________________
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
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Une Zik pour juste pour la baston !?   Sam 1 Aoû 2015 - 11:02

En fait l'idée c'est que les combats peuvent se déclencher n'importe quand et où . A la manière d'un RPG.

Alors, mes combats sont déjà préprogrammés avec une fonction généraliste. Dedans, je n'aurais aucun problème pour mettre un truc du genre :
if(Combat==true) {
aBaston.Play();

Parcontre, c'est lorsque le combat est terminé et que je voudrais faire cesser la musique du combat pour reprendre celle du lieu en question. Comment faire ?
Je pense à une sorte de fonction qui mémoriserait la musiqué joué juste AVANT que l'action de combat ne se démarre... Puis une fois le combat terminé, fin de la zik combat et ça reprend la zik mémorisé d'avant.

mais comment faire ça ? Quel type de fonction peut être utilisé pour ça ?
Un délire avec les index des fichiers musiques ?

hm...
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 Zik pour juste pour la baston !?   Sam 1 Aoû 2015 - 12:47

oui c'est ça

debut de room
aDebut.Play();

if(Combat==true) {
aDebut.Stop();
aBaston.Play();



fin de combat
aBaston.Stop();
aDebut.Play();

autrement tu peux créer une fonction avec une variable combat par exemple
if(Combat==1) {
aDebut.Stop();
aBaston.Play();
{
if(Combat==2) {
aDebut.Stop();
aBaston2.Play();
{
etc....

_________________
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
Creamy
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue


Nombre de messages : 1050

Date d'inscription : 15/10/2007


MessageSujet: Re: Une Zik pour juste pour la baston !?   Sam 1 Aoû 2015 - 12:55

Pour mettre la musique en pause puis reprendre sa lecture, Monkey propose un code sur le forum anglais.

Comme je crois qu'il n'y a qu'un canal pour la musique dans AGS, il va falloir utiliser un son pour ta musique intermédiaire. Pour jouer ce son en boucle, regarde ici.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://creamy.unblog.fr/
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Une Zik pour juste pour la baston !?   Dim 2 Aoû 2015 - 17:24

hm, j'ai bien regardé voir si je comprenais quelque chose et le code est totalement obsolète désormais depuis les nouvelles version AGS perplexe


J'ai bien compris le principe (c'est l'idée que j'avais) mais je bloque sur un truc , comment définir la musique qui est joué actuellement ?

Je voudrais en gros faire une fonction genre

function PauseMusic () {

music_num = La zik joué actuellement

music_pos = La position dans la zik

     Game.StopAudio();
   }
   
Et une fonction

   function RetourMusic() {
   
   
     PlayMusic(music_num);
        Seek(music_pos);

}

Quelque chose dans le genre , des gens ont une idée ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
filoulefilou
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 259

Date d'inscription : 24/05/2010


MessageSujet: Re: Une Zik pour juste pour la baston !?   Dim 2 Aoû 2015 - 19:44

Bon, j'ai réussi avec une méthode un peu bourrine, mais si ça peut toujours aider quelqu'un.

Alors voilà, j'ai plusieurs Room différentes avec donc plusieurs musiques selon la Room et il est possible d'aller de l'une à l'autre assez simplement.  A cela, je voulais ajouter une musique type combat qui se déclenche UNIQUEMENT pendant le combat, peu importe la zone et qui se termine une fois le combat achevé (reprenant ainsi la musique initiale de la room, là où elle en était)

Voilà ma méthode.

Alors je vais donner l'exemple pour 4 titres de chansons (inventés)
aRnb
aPiano
aRap
aTechno

1er étape
J'ai crée 3 globales Variables

music_cha   de type AudioChannel*     //C'est pour lui signifier quel Canal on utilise
music_pos  de type int                      //Pour définir a partir de quel moment la zik s'est s'arrêté
nusic_num  de type int                      // Il s'agit de numéroter les chansons (de 1 à 4)


2eme Étape

Alors, là où c'est fastidieux car il faut inscrire ce code à chaque fois que dans le code on lui demande de jouer l'une des chansons (dans un room_load par exemple)

Exemple :
Code:

aRnb.Play();
   music_cha = aRnb.play();
  music_num= 1;

Pour a Piano j'écrivais donc
Code:

aPiano.Play();
   music_cha = aPiano.play();
  music_num= 2;

etc...

Une fois que j'ai inscrit tout ça, j'ai donc expliqué au logiciel que lorsqu'il lance la chanson aPiano, le canal utilisé est music_cha et que la valeur associé à cette chanson est le 2

3e Étape

Tout ça pour quoi ?

Alors c'est simple, dès que je lance un combat (j'ai fait une fonction combat pour mon jeu)
J'ai ajouté les ligne suivante
Code:
music_pos =   music_cha.Position;
Game.StopAudio(eAudioTypeMusic);
aBaston.Play(eAudioPriorityVeryHigh);



Et à la fin du combat , j'ai fait une fonction
Code:


 function RetourMusic() {
  
    
      aBaston.Stop();


  
     if(music_num==1) aRnb.PlayFrom(music_pos);
     if(music_num==2)  aPiano.PlayFrom(music_pos);
     if(music_num==3)  aRap.PlayFrom(music_pos);
     if(music_num==4)  aTechno.PlayFrom(music_pos);

    }

    
    }



Voilà, j'espère que c'est clair.
Bon y'a probablement plus évident... A vous de me dire

Bonne soirée.
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 : 2430

Date d'inscription : 01/08/2006


MessageSujet: Re: Une Zik pour juste pour la baston !?   Lun 3 Aoû 2015 - 16:16

Salut filoulefilou,

Je pense que ta solution est globalement l'idéale. Après tu peux apporter quelques optimisations, en définissant des fonctions personnalisées pour chaque étape, et en remplaçant ta variable entière music_num par une variable de type AudioClip :
Code:
// Variables globales
AudioChannel* music_cha;     // C'est pour lui signifier quel Canal on utilise
int music_pos                // Pour définir a partir de quel moment la zik s'est s'arrêtée
AudioClip* music_cli;        // C'est pour lui signifier quel Clip on utilise

// Une fonction pour jouer une musique principale, qui remplacera Play
AudioChannel* PlayMusic(this AudioClip*) {
  music_cha = this.Play();
  music_cli = this;
  return music_cha;
}

// Une fonction pour jouer une musique temporaire, de combat
AudioChannel* PlayTemp(this AudioClip*) {
  music_pos = music_cha.Position;
  Game.StopAudio(eAudioTypeMusic);
  return this.Play(eAudioPriorityVeryHigh);
}

// Une fonction pour reprendre la musique principale
AudioChannel* ResumeMusic() {
  Game.StopAudio(eAudioTypeMusic);
  return music_cli.PlayFrom(music_pos);
}

Comme ça, dans les pièces où tu veux de la musique, dans room_Load tu utilises la fonction PlayMusic (par exemple aRap.PlayMusic();) puis lorsque tu lances un combat tu utilise la fonction PlayTemp (du coup aBaston.PlayTemp();) et à la fin de ton combat tu utilises ResumeMusic(); et le tour est joué.

_________________
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
Contenu sponsorisé




MessageSujet: Re: Une Zik pour juste pour la baston !?   Aujourd'hui à 19:53

Revenir en haut Aller en bas
 
Une Zik pour juste pour la baston !?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Juste pour rire
» Juste pour rire
» JUSTE POUR RIRE !!
» juste pour le FUN Rigole un peu ;)
» Juste pour rire

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: