我目前正在用sfml做一个小游戏。
对于资源加载和保存,我使用SFML游戏中描述的ResourceHolder开发手册:SFML资源持有者基本上,资源以unique_ptr的形式存储在地图中。
在SoundManager类中,我正在将不同的声音加载到此ResourceHolder。当我想播放声音时,这个SoundManager有一个播放声音的功能。
void SoundManager::playSound(SoundType soundToPlay) {
auto buffer = sounds.get(soundToPlay);
auto sound = sf::Sound(buffer);
sound.play();
}
但是我没有听到任何声音。我必须为地图中的每个声音存储不同的声音对象吗?我还尝试使用sf::Sound对象作为类成员,但这也不起作用。
使用此ResourceHolder可以正确加载纹理。
感谢您对的帮助
我在sfml-dev论坛中通过一些输入链接描述解决了这个问题。