diff --git a/include/manager.hpp b/include/manager.hpp index 316a96d..b6c4015 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -14,6 +14,7 @@ class State; class Manager { private: sf::RenderWindow window; + unsigned int framerate; ResourceManager resource_manager; sf::Clock clock; @@ -65,6 +66,16 @@ public: */ sf::RenderWindow& getWindow(); + /** + * Récupère le framerate (maximal) actuel + */ + unsigned int getFramerate(); + + /** + * Modifie le framerate (maximal) actuel + */ + void setFramerate(unsigned int set_framerate); + /** * Renvoie le temps actuel du jeu */ diff --git a/src/editor.cpp b/src/editor.cpp index 17b56ca..8572d2c 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -240,10 +240,12 @@ void Editor::processEvent(const sf::Event& event) { } void Editor::frame() { - // titre de la fenêtre + // attributs de la fenêtre getManager().setTitle(sf::String(L"Édition de ") + getName()); + getManager().setFramerate(Manager::FPS); + + // joue la musique de l'éditeur getResourceManager().playMusic("editor.ogg"); - getWindow().setFramerateLimit(Manager::FPS); // dessin de la frame draw(); diff --git a/src/game.cpp b/src/game.cpp index e5161c5..a9db69f 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -35,9 +35,9 @@ void Game::processEvent(const sf::Event& event) { } void Game::frame() { - // titre de la fenêtre + // attributs de la fenêtre getManager().setTitle(getName()); - getWindow().setFramerateLimit(0); + getManager().setFramerate(0); // si musique il y a, on la joue if (getMusic() != "") { diff --git a/src/manager.cpp b/src/manager.cpp index 9c32193..972a3db 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -71,6 +71,18 @@ sf::RenderWindow& Manager::getWindow() { return window; } +unsigned int Manager::getFramerate() { + return framerate; +} + +void Manager::setFramerate(unsigned int set_framerate) { + // on ne modifie le framerate maximal que s'il a changé + if (set_framerate != framerate) { + window.setFramerateLimit(set_framerate); + framerate = set_framerate; + } +} + sf::Time Manager::getCurrentTime() const { return clock.getElapsedTime(); } @@ -88,16 +100,15 @@ sf::String Manager::getTitle() { } void Manager::setTitle(sf::String set_title) { - if (title == set_title) { - return; - } + if (title != set_title) { + title = set_title; - title = set_title; - - if (title.isEmpty()) { - window.setTitle(sf::String(L"Skizzle")); - } else { - window.setTitle(sf::String(L"Skizzle ‒ ") + title); + // màj du titre selon le titre donné par l'état + if (title.isEmpty()) { + window.setTitle(sf::String(L"Skizzle")); + } else { + window.setTitle(sf::String(L"Skizzle ‒ ") + title); + } } } diff --git a/src/menu.cpp b/src/menu.cpp index 774bf36..6ecb670 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -71,10 +71,12 @@ void Menu::processEvent(const sf::Event& event) { } void Menu::frame() { - // titre de la fenêtre + // attributsde la fenêtre getManager().setTitle(""); + getManager().setFramerate(Manager::FPS); + + // joue la musique du menu getResourceManager().playMusic("menu.ogg"); - getWindow().setFramerateLimit(Manager::FPS); // affichage du menu sf::RenderWindow& window = getWindow(); diff --git a/src/rules.cpp b/src/rules.cpp index 795dd0e..8e3add6 100644 --- a/src/rules.cpp +++ b/src/rules.cpp @@ -24,10 +24,12 @@ void Rules::frame() { sf::RenderWindow& window = getWindow(); sf::Vector2f size = (sf::Vector2f) window.getSize(); - // titre de la fenêtre + // attributs de la fenêtre getManager().setTitle(L"Règles"); + getManager().setFramerate(Manager::FPS); + + // joue la musique du menu getResourceManager().playMusic("menu.ogg"); - getWindow().setFramerateLimit(Manager::FPS); // on s'assure d'être dans la vue par défaut (pas de zoom, 0x0 en haut gauche) getManager().useGUIView();