Gestion du framerate maximal depuis le manager
This commit is contained in:
parent
ca3d36bea8
commit
67074e9050
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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() != "") {
|
||||
|
|
|
@ -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,18 +100,17 @@ sf::String Manager::getTitle() {
|
|||
}
|
||||
|
||||
void Manager::setTitle(sf::String set_title) {
|
||||
if (title == set_title) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (title != set_title) {
|
||||
title = set_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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Manager::isKeyPressed(sf::Keyboard::Key key) const {
|
||||
return sf::Keyboard::isKeyPressed(key) && window.hasFocus();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue