Gestion du framerate maximal depuis le manager
This commit is contained in:
parent
ca3d36bea8
commit
67074e9050
|
@ -14,6 +14,7 @@ class State;
|
||||||
class Manager {
|
class Manager {
|
||||||
private:
|
private:
|
||||||
sf::RenderWindow window;
|
sf::RenderWindow window;
|
||||||
|
unsigned int framerate;
|
||||||
ResourceManager resource_manager;
|
ResourceManager resource_manager;
|
||||||
|
|
||||||
sf::Clock clock;
|
sf::Clock clock;
|
||||||
|
@ -65,6 +66,16 @@ public:
|
||||||
*/
|
*/
|
||||||
sf::RenderWindow& getWindow();
|
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
|
* Renvoie le temps actuel du jeu
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -240,10 +240,12 @@ void Editor::processEvent(const sf::Event& event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::frame() {
|
void Editor::frame() {
|
||||||
// titre de la fenêtre
|
// attributs de la fenêtre
|
||||||
getManager().setTitle(sf::String(L"Édition de ") + getName());
|
getManager().setTitle(sf::String(L"Édition de ") + getName());
|
||||||
|
getManager().setFramerate(Manager::FPS);
|
||||||
|
|
||||||
|
// joue la musique de l'éditeur
|
||||||
getResourceManager().playMusic("editor.ogg");
|
getResourceManager().playMusic("editor.ogg");
|
||||||
getWindow().setFramerateLimit(Manager::FPS);
|
|
||||||
|
|
||||||
// dessin de la frame
|
// dessin de la frame
|
||||||
draw();
|
draw();
|
||||||
|
|
|
@ -35,9 +35,9 @@ void Game::processEvent(const sf::Event& event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::frame() {
|
void Game::frame() {
|
||||||
// titre de la fenêtre
|
// attributs de la fenêtre
|
||||||
getManager().setTitle(getName());
|
getManager().setTitle(getName());
|
||||||
getWindow().setFramerateLimit(0);
|
getManager().setFramerate(0);
|
||||||
|
|
||||||
// si musique il y a, on la joue
|
// si musique il y a, on la joue
|
||||||
if (getMusic() != "") {
|
if (getMusic() != "") {
|
||||||
|
|
|
@ -71,6 +71,18 @@ sf::RenderWindow& Manager::getWindow() {
|
||||||
return window;
|
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 {
|
sf::Time Manager::getCurrentTime() const {
|
||||||
return clock.getElapsedTime();
|
return clock.getElapsedTime();
|
||||||
}
|
}
|
||||||
|
@ -88,18 +100,17 @@ sf::String Manager::getTitle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::setTitle(sf::String set_title) {
|
void Manager::setTitle(sf::String set_title) {
|
||||||
if (title == set_title) {
|
if (title != set_title) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
title = set_title;
|
title = set_title;
|
||||||
|
|
||||||
|
// màj du titre selon le titre donné par l'état
|
||||||
if (title.isEmpty()) {
|
if (title.isEmpty()) {
|
||||||
window.setTitle(sf::String(L"Skizzle"));
|
window.setTitle(sf::String(L"Skizzle"));
|
||||||
} else {
|
} else {
|
||||||
window.setTitle(sf::String(L"Skizzle ‒ ") + title);
|
window.setTitle(sf::String(L"Skizzle ‒ ") + title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool Manager::isKeyPressed(sf::Keyboard::Key key) const {
|
bool Manager::isKeyPressed(sf::Keyboard::Key key) const {
|
||||||
return sf::Keyboard::isKeyPressed(key) && window.hasFocus();
|
return sf::Keyboard::isKeyPressed(key) && window.hasFocus();
|
||||||
|
|
|
@ -71,10 +71,12 @@ void Menu::processEvent(const sf::Event& event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::frame() {
|
void Menu::frame() {
|
||||||
// titre de la fenêtre
|
// attributsde la fenêtre
|
||||||
getManager().setTitle("");
|
getManager().setTitle("");
|
||||||
|
getManager().setFramerate(Manager::FPS);
|
||||||
|
|
||||||
|
// joue la musique du menu
|
||||||
getResourceManager().playMusic("menu.ogg");
|
getResourceManager().playMusic("menu.ogg");
|
||||||
getWindow().setFramerateLimit(Manager::FPS);
|
|
||||||
|
|
||||||
// affichage du menu
|
// affichage du menu
|
||||||
sf::RenderWindow& window = getWindow();
|
sf::RenderWindow& window = getWindow();
|
||||||
|
|
|
@ -24,10 +24,12 @@ void Rules::frame() {
|
||||||
sf::RenderWindow& window = getWindow();
|
sf::RenderWindow& window = getWindow();
|
||||||
sf::Vector2f size = (sf::Vector2f) window.getSize();
|
sf::Vector2f size = (sf::Vector2f) window.getSize();
|
||||||
|
|
||||||
// titre de la fenêtre
|
// attributs de la fenêtre
|
||||||
getManager().setTitle(L"Règles");
|
getManager().setTitle(L"Règles");
|
||||||
|
getManager().setFramerate(Manager::FPS);
|
||||||
|
|
||||||
|
// joue la musique du menu
|
||||||
getResourceManager().playMusic("menu.ogg");
|
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)
|
// on s'assure d'être dans la vue par défaut (pas de zoom, 0x0 en haut gauche)
|
||||||
getManager().useGUIView();
|
getManager().useGUIView();
|
||||||
|
|
Loading…
Reference in New Issue