Jouer un son :

Contrairement à la SFML, ODFAEG n'utilise qu'une seule classe pour charger des sons ou bien jouer des musiques,
c'est la classe odfaeg::audio::Stream.
Pour jouer un son il faut avant tout lire le fichier, pour cela, il faut utiliser la classe odfaeg::audio::SoundBufferManager,
cette classe est fort similaire à odfaeg::graphic::TextureManager à part qu'elle charge des sons et non pas des texture.


    SoundBufferManager<> sm;
    sm.fromFileWithAlias("sounds/walk_crop.wav", "step foot");
    sm.fromFileWithAlias("sounds/fire.wav", "fire");
    

Ensuite pour pouvoir utiliser ce son, il faut le passer à un objet de type odfaeg::audio::Stream.


    Stream* stream = new Stream();
    stream->load(*sm.getResourceByAlias("step foot"));
    Stream* stream2 = new Stream();
    stream2->load(*sm.getResourceByAlias("fire"));
    
/code>

Cette classe est juste un flux audio personnalisé de OEDFAEG, on peut aussi charger des musiques en utilisant la méthode openFromFile de
la classe odfaeg::audio::Stream. (Pas besoin d'utilise SoundBufferManager pour mes musiques vu qu'elles sont chargées au fur et à mesure
qu'elles sont jouées avec la classe odfaeg::audio::Stream.)
Enfin, pour pouvoir jouer le son, il faut utiliser la classe odfaeg::audio::Player et lui passer un objet de type odfaeg::audio::Stream qui contient
notre son :

player.setAudioStream(stream); pfire.setAudioStream(stream2);

Pour jouer un son, il faut utiliser la méthode play de la classe odfaeg::audio::Player, celle-ci attend un paramètre booléen, pour
jouer le son en boucle ou bien une seule fois.
Comme pour la SFML, on peut mettre un son en pause, l'arrêter, etc... avec les méthode pause, stop, ...

La spatialisation du son.

Les classes et méthodes pour la spacialisation du son sont exactement les mêmes que celles de la SFML.
C'est à dire, pour paramétrer les sources sonores il suffit d'appeler les méthodes suivantes :


    player.setRelativeToListener(true);
    player.setPosition(0.f, 0.f, 0.f);
    player.setMinDistance(5.f);
    player.setAttenuation(10.f);
    pfire.setPosition(0, 100, 0);
    pfire.setMinDistance(200);
    pfire.setAttenuation(10.f);
    

Et pour paramétrer l'écouteur :


    sf::Listener::setUpVector(0.f, 0.f, 1.f);
    sf::Listener::setPosition(caracter->getCenter().x, caracter->getCenter().y, 0);
    sf::Listener::setDirection(dir.x, dir.y, 0);
    
    

Voila c'est tout pour ce chapitre, si vous voulez avoir plus de détails sur les méthodes utilisées pour la spatialisation du son, je vous invite
à aller lire les tutoriels à se sujet sur le site de la SFML.