Bonjour.
Il y a quelque chose avec la spatialisation du son que j'ai du mal à cerner :
dans mon cas, si je bouge la position d'un sond, il est bien atténué comme il faut.
Si en revanche, je bouge le listener seulement, il n'est pas atténué :
création du son :
void ENTITY_Sound::create( sf::SoundBuffer *buffer )
{
sf::Sound sound ;
sound.setBuffer ( *buffer ) ;
sound.setRelativeToListener(true);
sound.setMinDistance ( 100 ) ;
sound.setAttenuation( 10 );
sound.setLoop( true ) ;
_sound.push_back( sound ) ;
}
exemple 1 : je bouge le son seulement en apuyant sur G . Ca marche.
if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::G ) )
{
_test += 10 ;
}
for ( auto& it : _sound )
{
sf::Listener::setPosition ( 0, 0, 0 ) ;
it.setPosition( _test , _test , 0 ) ;
}
exemple 2 : je bouge le Listener seulement en apuyant sur G . Ca ne marche pas.
if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::G ) )
{
_test += 10 ;
}
for ( auto& it : _sound )
{
sf::Listener::setPosition ( _test , _test , 0 ) ;
it.setPosition( 0 , 0 , 0 ) ;
}
Avez vous une explication ?
Merci si vous pouvez m'aider.