Gestion des polices dans le gestionnaire de ressources
This commit is contained in:
parent
a6d39aab3d
commit
b11684b906
|
@ -9,6 +9,7 @@
|
|||
class ResourceManager {
|
||||
private:
|
||||
std::map<std::string, sf::Texture> textures;
|
||||
std::map<std::string, sf::Font> fonts;
|
||||
sf::Music music;
|
||||
|
||||
public:
|
||||
|
@ -22,6 +23,13 @@ public:
|
|||
*/
|
||||
sf::Texture& getTexture(std::string name);
|
||||
|
||||
/**
|
||||
* Récupère la police demandée. Réutilise une police
|
||||
* déjà chargée si elle a déjà été demandée, sinon, la
|
||||
* charge depuis son emplacement
|
||||
*/
|
||||
sf::Font& getFont(std::string name);
|
||||
|
||||
/**
|
||||
* Change la musique en lecture de fond
|
||||
* Doit être utilisé pour la lecture en continu
|
||||
|
|
|
@ -56,6 +56,23 @@ sf::Texture& ResourceManager::getTexture(std::string name) {
|
|||
return textures[name];
|
||||
}
|
||||
|
||||
sf::Font& ResourceManager::getFont(std::string name) {
|
||||
// si la police est déjà chargée, on l'utilise directement
|
||||
if (fonts.count(name) > 0) {
|
||||
return fonts[name];
|
||||
}
|
||||
|
||||
sf::Font font;
|
||||
|
||||
// tente de charger la police dans le chemin "CWD/res/name"
|
||||
if (!font.loadFromFile(getResourcePath(name))) {
|
||||
throw std::runtime_error("Impossible de charger la police : " + name);
|
||||
}
|
||||
|
||||
fonts[name] = font;
|
||||
return fonts[name];
|
||||
}
|
||||
|
||||
void ResourceManager::setMusic(std::string name) {
|
||||
if (!music.openFromFile(getResourcePath(name))) {
|
||||
throw std::runtime_error("Impossible de charger la musique : " + name);
|
||||
|
|
Loading…
Reference in New Issue