Bonjour.
Depuis que j'ai implémenté quelques son,(et depuis seulement), mon programme bug de temps en temps au lancement :
-parfois il marche très bien et les sons sont joués correctement.
-parfois il plante, au chargement.
J'aimerais savoir si cela vient de ma façon de procéder:
je commence par charger dans mon niveau les sons qui vont être nécessaire, avec sf::SoundBuffer:
class Niveau1
{
public:
...
void charger();
void update();
...
private:
...
Objet monObjetQuiContientLeSon ;
...
sf::SoundBuffer *m_sonBuffer;
...
}
dans ma fonction charger:
void Niveau1::charger()
{
...
m_sonBuffer = new sf::SoundBuffer;
m_soundBuffer->loadFromFile("monSon.wav");
...
monObjetQuiContientLeSon.recoitSon( m_soundBuffer);
...
void Niveau1::update()
{
sf::Listener::setGlobalVolume(50);
sf::Listener::setPosition( m_vue1.renvoiVue()->getCenter().x , m_vue1.renvoiVue()->getCenter().y , 0 );
...
monObjetQuiContientLeSon.update();
...
}
Et enfin mon objet qui contient le son:
class Objet
{
public:
...
void update();
void recoitSon(sf::SoundBuffer *son);
...
private:
...
sf::Sound m_son;
...
}
void Objet::recoitSon(sf::SoundBuffer *son)
{
...
m_son.setBuffer(*son);
m_son.setRelativeToListener(true);
...
}
void Objet::update()
{
...
if(m_son.getStatus() == sf::SoundStream::Stopped)
{
m_son.play();
}
...
}
voilà. J'utilise également de objets qui ont des positions et n'utilisent pas "setRelativeToListener".
Cela fait quelques temps déjà que je cherche sans résultat. il y a-t-il des mauvaises "syntaxes" dans mon code?
Merci si vous pouvez m'aider