Commit bb797ed6 authored by Elias Leinenweber's avatar Elias Leinenweber
Browse files

Factorisation Game::play

parent 390f6ab9
......@@ -17,9 +17,6 @@ class Game
static GameWindow *mainWindow;
static std::vector<Component *> components;
public:
Game() = delete;
/** @brief Démarre le jeu. */
static void start();
......@@ -30,12 +27,22 @@ class Game
*/
static void loop(sf::Clock &clock);
/** @brief Débute une nouvelle partie. */
static void newGame();
/** @brief Termine le jeu. */
static void end();
public:
Game() = delete;
/**
* @brief Joue au jeu.
*
* @param clock le chronomètre du processus principal
*/
static void play(sf::Clock &clock);
/** @brief Débute une nouvelle partie. */
static void newGame();
/**
* @brief Renvoie une référence vers la fenêtre principale.
*
......
......@@ -19,7 +19,8 @@ class Actor : public Texturable
* @param surname le nom de famille du personnage
* @param texturePath le chemin du fichier de texture
*/
Actor(const std::string &name, const std::string &surname, const std::string &texturePath);
Actor(const std::string &name, const std::string &surname,
const std::string &texturePath);
/**
* @brief Renvoie le prénom du personnage.
......
......@@ -24,7 +24,12 @@ class Classroom : public Texturable
*
* @param teacher Professeur de la classe
*/
Classroom(int n, Teacher *teacher) : Texturable(RESOURCES_FOLDER "images/salles/salle" + std::to_string(n) + ".png"), teacher(teacher) {}
Classroom(int n, Teacher *teacher)
: Texturable(RESOURCES_FOLDER "images/salles/salle" + std::to_string(n) +
".png")
, teacher(teacher)
{
}
~Classroom();
/**
......
......@@ -30,8 +30,8 @@ class Teacher : public Actor
* @param pedagogie Niveau de pédagogie du professeur
* @param meritocratic Niveau de méritocratie du professeur
*/
Teacher(const std::string &name, const std::string &surname, double pedagogie,
double meritocratic);
Teacher(const std::string &name, const std::string &surname,
double pedagogie, double meritocratic);
/**
* @brief Get le niveau de pédagogie du professeur
......
......@@ -5,7 +5,7 @@
class Component
{
public:
virtual ~Component() {};
virtual ~Component(){};
virtual void render() const = 0;
};
......
......@@ -7,7 +7,8 @@
#include "view/Component.h"
class Texturable : public Component {
class Texturable : public Component
{
protected:
std::string texturePath;
sf::Texture texture;
......
......@@ -11,9 +11,7 @@ main()
/* Démarre le chronomètre. */
sf::Clock clock;
Game::start();
Game::loop(clock);
Game::end();
Game::play(clock);
exit(EXIT_SUCCESS);
/* NOTREACHED */
......
......@@ -17,9 +17,27 @@
GameWindow *Game::mainWindow = nullptr;
std::vector<Component *> Game::components = std::vector<Component *>();
void
Game::play(sf::Clock &clock)
{
start();
loop(clock);
end();
}
void
Game::newGame()
{
assert(mainWindow);
clearComponents();
addComponent(new MainView);
}
void
Game::start()
{
assert(!mainWindow);
/* Crée la fenêtre. */
mainWindow = new GameWindow;
......@@ -29,6 +47,7 @@ Game::start()
void
Game::loop(sf::Clock &clock)
{
assert(mainWindow);
while (mainWindow->isOpen()) {
mainWindow->handleEvents();
ImGui::SFML::Update(*mainWindow, clock.restart());
......@@ -39,13 +58,6 @@ Game::loop(sf::Clock &clock)
}
}
void
Game::newGame()
{
clearComponents();
addComponent(new MainView);
}
void
Game::end()
{
......@@ -53,9 +65,9 @@ Game::end()
* Il faut que la fenêtre aie été créée auparavant via la méthode
* Game::newGame.
*/
assert(Game::mainWindow);
assert(mainWindow);
delete Game::mainWindow;
delete mainWindow;
clearComponents();
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment