Mettre une musique dans un jeu

Mettre une musique dans un jeu - C - Programmation

Marsh Posté le 12-12-2013 à 20:02:55    

Bonsoir, je cherche tout simplement à mettre une musique dans mon jeu en C, en m'aidant de la bibliothèque allegro 5 sous visual studio. J'ai vu plusieurs manières pour arriver à mettre un son ou une musique mais je cherche vraiment la plus simple, celle par laquelle je ne devrais pas faire de linkage ect...
 
A noter que j'utilise ceci :  
#include <allegro5/allegro_audio.h>
 
et je voudrais donc rajouter une simple musique...
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 12-12-2013 à 20:02:55   

Reply

Marsh Posté le 12-12-2013 à 21:05:31    

En regardant vite fait l'API, il y a la fonction "al_play_sample()" qui permet de jouer un son de type WAV. Si tu as un autre format (genre mp3 ou ogg) faudra le convertir (à la volée) avant probablement. C.f http://wiki.allegro.cc/index.php?t [...] dons/Audio
 
Cela dit, cette fonction est bloquante. Donc faudra soit faire un thread qui boucle/bloque sur cette fonction.
 
Si tu veux mixer cette musique avec des bruitages, il me semble que cette lib (allegro donc) permet de créer des canaux séparés et faire un mixage automatique. Cela dit, avec un accès multi-threadé, faudra sans doute être extrêmement prudent, et faire quelques tests de stabilité avant.

Reply

Marsh Posté le 14-12-2013 à 11:53:13    

Ok merci, moi j'avais fait ceci mais ça ne fonctionnait pas :

Code :
  1. #include <allegro5\allegro_acodec.h>
  2. #include <allegro5\allegro_audio.h>
  3. int main()
  4. {
  5. ALLEGRO_SAMPLE_ID music_game;
  6. ALLEGRO_SAMPLE *sample = NULL;
  7. ALLEGRO_SAMPLE_INSTANCE*songinstance;
  8. int fin=0;
  9. al_install_audio();
  10. al_init_acodec_addon();
  11. al_reserve_samples(1);
  12. sample = al_load_sample("son_test.wav" );
  13.    if(!sample)
  14.       erreur("al_load_sample" );
  15.    if(!al_install_audio())
  16.       erreur("al_install_audio()" );
  17.    if(!al_init_acodec_addon())
  18.       erreur("al_init_acodec_addon()" );
  19.    if(!al_reserve_samples(1))
  20.       erreur("al_reserve_samples(1)" );
  21.    songinstance = al_create_sample_instance(sample);
  22.    al_attach_sample_instance_to_mixer(songinstance, al_get_default_mixer());
  23.    while(!fin){
  24.       al_play_sample_instance(songinstance);
  25.    }
  26.    al_destroy_sample_instance(songinstance);
  27.    system("PAUSE" );
  28.    return 0;
  29. }


 
Le problème c'est que ça marchait pas, je vais essayer de faire avec la méthode que tu m'as donné.  :wahoo:


Message édité par setsuuna le 14-12-2013 à 11:54:32
Reply

Marsh Posté le 14-12-2013 à 12:18:06    

Alors, j'ai copié tout le code sur le site de l'API que tu m'as donné, au début ça fonctionnait pas, et j'ai cherché pourquoi... Tout simplement parce que mes anciens tests avaient corrompus le fichier son.wav que j'avais mis dans le dossier. Je vais essayer de mettre le code dans le programme que je suis en train de faire.  
Merci beaucoup en tout cas pour ton aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed