Renommage ::View => State pour éviter les confusions
This commit is contained in:
parent
affcc09abb
commit
0688a2d501
|
@ -84,13 +84,13 @@ public:
|
||||||
virtual ~Editor();
|
virtual ~Editor();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appelé par le manager lorsque la vue commence à
|
* Appelé par le manager lorsque l'état commence à
|
||||||
* être utilisée
|
* être utilisée
|
||||||
*/
|
*/
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demande le passage à la frame suivante sur cette vue
|
* Demande le passage à la frame suivante sur cet état
|
||||||
*/
|
*/
|
||||||
virtual void frame(const std::vector<sf::Event>& events);
|
virtual void frame(const std::vector<sf::Event>& events);
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,7 @@ private:
|
||||||
WidgetTimer widget_timer;
|
WidgetTimer widget_timer;
|
||||||
sf::Time next_frame_time;
|
sf::Time next_frame_time;
|
||||||
bool test_mode;
|
bool test_mode;
|
||||||
std::shared_ptr<View> return_view;
|
std::shared_ptr<State> return_state;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Met à jour les objets du jeu pour
|
* Met à jour les objets du jeu pour
|
||||||
|
@ -43,13 +43,12 @@ public:
|
||||||
virtual ~Game();
|
virtual ~Game();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appelé par le manager lorsque la vue commence à
|
* Appelé par le manager lorsque le jeu commence
|
||||||
* être utilisée
|
|
||||||
*/
|
*/
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demande le passage à la frame suivante sur cette vue
|
* Demande le passage à la frame suivante du jeu
|
||||||
*/
|
*/
|
||||||
virtual void frame(const std::vector<sf::Event>& events);
|
virtual void frame(const std::vector<sf::Event>& events);
|
||||||
|
|
||||||
|
@ -57,7 +56,7 @@ public:
|
||||||
* Mise en mode test : l'appui sur espace renvoie
|
* Mise en mode test : l'appui sur espace renvoie
|
||||||
* vers l'éditeur donné
|
* vers l'éditeur donné
|
||||||
*/
|
*/
|
||||||
void setTestMode(std::shared_ptr<View> set_return_view);
|
void setTestMode(std::shared_ptr<State> set_return_state);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#ifndef __PTF_OBJECT_VIEW_HPP__
|
#ifndef __PTF_LEVEL_HPP__
|
||||||
#define __PTF_OBJECT_VIEW_HPP__
|
#define __PTF_LEVEL_HPP__
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "view.hpp"
|
#include "state.hpp"
|
||||||
#include "object.hpp"
|
#include "object.hpp"
|
||||||
#include "manager.hpp"
|
#include "manager.hpp"
|
||||||
#include "resource_manager.hpp"
|
#include "resource_manager.hpp"
|
||||||
|
@ -14,9 +14,9 @@ enum class GravityDirection {NORTH, EAST, SOUTH, WEST};
|
||||||
/**
|
/**
|
||||||
* La classe Level est une abstraction des
|
* La classe Level est une abstraction des
|
||||||
* classes affichant une collection d'objets, comme
|
* classes affichant une collection d'objets, comme
|
||||||
* les classe de l'éditeur et du jeu
|
* les classes de l'éditeur et du jeu
|
||||||
*/
|
*/
|
||||||
class Level : public View {
|
class Level : public State {
|
||||||
private:
|
private:
|
||||||
sf::View camera;
|
sf::View camera;
|
||||||
sf::String name;
|
sf::String name;
|
||||||
|
@ -67,13 +67,12 @@ public:
|
||||||
virtual void save();
|
virtual void save();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appelé par le manager lorsque la vue commence à
|
* Appelé par le manager lorsque l'état commence à être utilisé
|
||||||
* être utilisée
|
|
||||||
*/
|
*/
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demande le passage à la frame suivante sur cette vue
|
* Demande le passage à la frame suivante sur cet état
|
||||||
*/
|
*/
|
||||||
virtual void frame(const std::vector<sf::Event>& events);
|
virtual void frame(const std::vector<sf::Event>& events);
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
#define __PTF_MANAGER_HPP__
|
#define __PTF_MANAGER_HPP__
|
||||||
|
|
||||||
#include "resource_manager.hpp"
|
#include "resource_manager.hpp"
|
||||||
#include "view.hpp"
|
#include "state.hpp"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gestionnaire principal de toutes les vues et
|
* Gestionnaire principal de tous les états, vues et
|
||||||
* ressources du jeu
|
* ressources du jeu
|
||||||
*/
|
*/
|
||||||
class Manager {
|
class Manager {
|
||||||
|
@ -19,8 +19,8 @@ private:
|
||||||
ResourceManager resource_manager;
|
ResourceManager resource_manager;
|
||||||
std::vector<sf::Event> events;
|
std::vector<sf::Event> events;
|
||||||
|
|
||||||
std::shared_ptr<View> view;
|
std::shared_ptr<State> state;
|
||||||
std::shared_ptr<View> next_view;
|
std::shared_ptr<State> next_state;
|
||||||
|
|
||||||
bool running;
|
bool running;
|
||||||
|
|
||||||
|
@ -38,14 +38,14 @@ public:
|
||||||
void quit();
|
void quit();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renvoie la vue actuelle du jeu
|
* Renvoie l'état actuel du jeu
|
||||||
*/
|
*/
|
||||||
std::shared_ptr<View> getView();
|
std::shared_ptr<State> getState();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Charge la vue donnée dans le jeu
|
* Charge l'état donné dans le jeu
|
||||||
*/
|
*/
|
||||||
void setView(std::shared_ptr<View> set_view);
|
void setState(std::shared_ptr<State> set_state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renvoie la fenêtre actuellement utilisée pour le dessin
|
* Renvoie la fenêtre actuellement utilisée pour le dessin
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define __PTF_MENU_HPP__
|
#define __PTF_MENU_HPP__
|
||||||
|
|
||||||
#include "manager.hpp"
|
#include "manager.hpp"
|
||||||
#include "view.hpp"
|
#include "state.hpp"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
* et permet de choisir entre jouer, lire les règles
|
* et permet de choisir entre jouer, lire les règles
|
||||||
* et quitter.
|
* et quitter.
|
||||||
*/
|
*/
|
||||||
class Menu : public View {
|
class Menu : public State {
|
||||||
private:
|
private:
|
||||||
std::vector<sf::String> choices;
|
std::vector<sf::String> choices;
|
||||||
std::vector<sf::Text> labels;
|
std::vector<sf::Text> labels;
|
||||||
|
@ -49,13 +49,12 @@ public:
|
||||||
virtual ~Menu();
|
virtual ~Menu();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appelé par le manager lorsque la vue commence à
|
* Appelé par le manager lorsque le menu est affiché
|
||||||
* être utilisée
|
|
||||||
*/
|
*/
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dessine le menu
|
* Dessine la prochaine frame du menu
|
||||||
*/
|
*/
|
||||||
virtual void frame(const std::vector<sf::Event>& events);
|
virtual void frame(const std::vector<sf::Event>& events);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef __PTF_VIEW_HPP__
|
#ifndef __PTF_STATE_HPP__
|
||||||
#define __PTF_VIEW_HPP__
|
#define __PTF_STATE_HPP__
|
||||||
|
|
||||||
#include <SFML/Graphics.hpp>
|
#include <SFML/Graphics.hpp>
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ class Manager;
|
||||||
class Object;
|
class Object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Classe abstraite pour les vues
|
* Classe abstraite pour les états de jeu
|
||||||
*/
|
*/
|
||||||
class View {
|
class State {
|
||||||
private:
|
private:
|
||||||
Manager& manager;
|
Manager& manager;
|
||||||
|
|
||||||
|
@ -21,17 +21,17 @@ protected:
|
||||||
virtual void processEvent(const sf::Event& event) = 0;
|
virtual void processEvent(const sf::Event& event) = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
View(Manager& manager);
|
State(Manager& manager);
|
||||||
virtual ~View();
|
virtual ~State();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appelé par le manager lorsque la vue commence à
|
* Appelé par le manager lorsque l'état commence à
|
||||||
* être utilisée
|
* être utilisé
|
||||||
*/
|
*/
|
||||||
virtual void begin() = 0;
|
virtual void begin() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demande le passage à la frame suivante sur cette vue
|
* Demande le passage à la frame suivante sur cet état
|
||||||
*/
|
*/
|
||||||
virtual void frame(const std::vector<sf::Event>& events);
|
virtual void frame(const std::vector<sf::Event>& events);
|
||||||
|
|
|
@ -378,6 +378,6 @@ void Editor::test() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// mise en mode test
|
// mise en mode test
|
||||||
game->setTestMode(getManager().getView());
|
game->setTestMode(getManager().getState());
|
||||||
getManager().setView(game);
|
getManager().setState(game);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ const float CAMERA_TOLERANCE_RATIO = 2.f / 3.f;
|
||||||
Game::Game(Manager& manager) : Level(manager),
|
Game::Game(Manager& manager) : Level(manager),
|
||||||
widget_timer(manager, false),
|
widget_timer(manager, false),
|
||||||
next_frame_time(manager.getCurrentTime()),
|
next_frame_time(manager.getCurrentTime()),
|
||||||
test_mode(false), return_view(nullptr) {}
|
test_mode(false), return_state(nullptr) {}
|
||||||
|
|
||||||
Game::~Game() {}
|
Game::~Game() {}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ void Game::processEvent(const sf::Event& event) {
|
||||||
// appui sur espace en mode test : retour à l'éditeur
|
// appui sur espace en mode test : retour à l'éditeur
|
||||||
if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Space && test_mode) {
|
if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Space && test_mode) {
|
||||||
test_mode = false;
|
test_mode = false;
|
||||||
getManager().setView(return_view);
|
getManager().setState(return_state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ void Game::update() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::setTestMode(std::shared_ptr<View> set_return_view) {
|
void Game::setTestMode(std::shared_ptr<State> set_return_state) {
|
||||||
return_view = set_return_view;
|
return_state = set_return_state;
|
||||||
test_mode = true;
|
test_mode = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ std::map<unsigned int, std::function<ObjectPtr(std::ifstream&)>> object_type_map
|
||||||
{GravityBlock::TYPE_ID, GravityBlock::load}
|
{GravityBlock::TYPE_ID, GravityBlock::load}
|
||||||
};
|
};
|
||||||
|
|
||||||
Level::Level(Manager& manager) : View(manager), gravity(0, GRAVITY) {}
|
Level::Level(Manager& manager) : State(manager), gravity(0, GRAVITY) {}
|
||||||
Level::~Level() {}
|
Level::~Level() {}
|
||||||
|
|
||||||
void Level::load(std::ifstream& file) {
|
void Level::load(std::ifstream& file) {
|
||||||
|
@ -128,7 +128,7 @@ void Level::begin() {
|
||||||
|
|
||||||
void Level::frame(const std::vector<sf::Event>& events) {
|
void Level::frame(const std::vector<sf::Event>& events) {
|
||||||
// traitement des événements
|
// traitement des événements
|
||||||
View::frame(events);
|
State::frame(events);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level::processEvent(const sf::Event& event) {
|
void Level::processEvent(const sf::Event& event) {
|
||||||
|
|
|
@ -12,7 +12,7 @@ int main() {
|
||||||
std::shared_ptr<Editor> editor = std::shared_ptr<Editor>(new Editor(manager));
|
std::shared_ptr<Editor> editor = std::shared_ptr<Editor>(new Editor(manager));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
manager.setView(menu);
|
manager.setState(menu);
|
||||||
manager.start();
|
manager.start();
|
||||||
} catch (const std::exception& exception) {
|
} catch (const std::exception& exception) {
|
||||||
std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl;
|
std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl;
|
||||||
|
|
|
@ -4,7 +4,7 @@ Manager::Manager() : window(
|
||||||
sf::VideoMode(704, 480), "Skizzle", sf::Style::Default,
|
sf::VideoMode(704, 480), "Skizzle", sf::Style::Default,
|
||||||
sf::ContextSettings(0, 0, 2)
|
sf::ContextSettings(0, 0, 2)
|
||||||
), default_view(window.getDefaultView()), title(sf::String(L"")),
|
), default_view(window.getDefaultView()), title(sf::String(L"")),
|
||||||
view(NULL), next_view(NULL), running(false) {}
|
state(NULL), next_state(NULL), running(false) {}
|
||||||
|
|
||||||
void Manager::start() {
|
void Manager::start() {
|
||||||
running = true;
|
running = true;
|
||||||
|
@ -13,11 +13,11 @@ void Manager::start() {
|
||||||
sf::Event event;
|
sf::Event event;
|
||||||
std::vector<sf::Event> events;
|
std::vector<sf::Event> events;
|
||||||
|
|
||||||
// si un changement de vue a été demandé, on l'effectue maintenant
|
// si un changement d'état a été demandé, on l'effectue maintenant
|
||||||
if (next_view != nullptr) {
|
if (next_state != nullptr) {
|
||||||
view = next_view;
|
state = next_state;
|
||||||
next_view->begin();
|
next_state->begin();
|
||||||
next_view = nullptr;
|
next_state = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// traitement des évènements reçus
|
// traitement des évènements reçus
|
||||||
|
@ -37,13 +37,13 @@ void Manager::start() {
|
||||||
events.push_back(event);
|
events.push_back(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// demande à la vue de se mettre à jour sur
|
// demande à l'état de se mettre à jour sur
|
||||||
// la prochaine frame
|
// la prochaine frame
|
||||||
if (view == NULL) {
|
if (state == NULL) {
|
||||||
throw std::runtime_error("Aucune vue à afficher pour le jeu");
|
throw std::runtime_error("Aucune état à afficher pour le jeu");
|
||||||
}
|
}
|
||||||
|
|
||||||
view->frame(events);
|
state->frame(events);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,14 +52,14 @@ void Manager::quit() {
|
||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<View> Manager::getView() {
|
std::shared_ptr<State> Manager::getState() {
|
||||||
return view;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::setView(std::shared_ptr<View> set_view) {
|
void Manager::setState(std::shared_ptr<State> set_state) {
|
||||||
// on ne change pas immédiatement la vue, on attend
|
// on ne change pas immédiatement l'état, on attend
|
||||||
// la prochaine frame pour éviter toute erreur de segmentation
|
// la prochaine frame pour éviter toute erreur de segmentation
|
||||||
next_view = set_view;
|
next_state = set_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
sf::RenderWindow& Manager::getWindow() {
|
sf::RenderWindow& Manager::getWindow() {
|
||||||
|
|
10
src/menu.cpp
10
src/menu.cpp
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
const float MAX_WIDTH_PROPORTION = 1.f / 3.f;
|
const float MAX_WIDTH_PROPORTION = 1.f / 3.f;
|
||||||
|
|
||||||
Menu::Menu(Manager& manager) : View(manager) {}
|
Menu::Menu(Manager& manager) : State(manager) {}
|
||||||
Menu::~Menu() {}
|
Menu::~Menu() {}
|
||||||
|
|
||||||
void Menu::begin() {
|
void Menu::begin() {
|
||||||
|
@ -20,7 +20,7 @@ void Menu::begin() {
|
||||||
|
|
||||||
void Menu::frame(const std::vector<sf::Event>& events) {
|
void Menu::frame(const std::vector<sf::Event>& events) {
|
||||||
// traitement des événements
|
// traitement des événements
|
||||||
View::frame(events);
|
State::frame(events);
|
||||||
|
|
||||||
// titre de la fenêtitre
|
// titre de la fenêtitre
|
||||||
getManager().setTitle("");
|
getManager().setTitle("");
|
||||||
|
@ -164,8 +164,8 @@ void Menu::loadRules() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::launchEditor() {
|
void Menu::launchEditor() {
|
||||||
std::shared_ptr<View> editor = std::shared_ptr<View>(new Editor(getManager()));
|
std::shared_ptr<Editor> editor = std::shared_ptr<Editor>(new Editor(getManager()));
|
||||||
getManager().setView(editor);
|
getManager().setState(editor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::launchGame(std::string name) {
|
void Menu::launchGame(std::string name) {
|
||||||
|
@ -177,7 +177,7 @@ void Menu::launchGame(std::string name) {
|
||||||
game->load(file);
|
game->load(file);
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
getManager().setView(game);
|
getManager().setState(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::quit() {
|
void Menu::quit() {
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
#include "view.hpp"
|
#include "state.hpp"
|
||||||
#include "manager.hpp"
|
#include "manager.hpp"
|
||||||
|
|
||||||
View::View(Manager& manager) : manager(manager) {}
|
State::State(Manager& manager) : manager(manager) {}
|
||||||
View::~View() {}
|
State::~State() {}
|
||||||
|
|
||||||
void View::frame(const std::vector<sf::Event>& events) {
|
void State::frame(const std::vector<sf::Event>& events) {
|
||||||
// traitement des événements
|
// traitement des événements
|
||||||
for (unsigned int i = 0; i < events.size(); i++) {
|
for (unsigned int i = 0; i < events.size(); i++) {
|
||||||
processEvent(events[i]);
|
processEvent(events[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Manager& View::getManager() {
|
Manager& State::getManager() {
|
||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
// raccourcis vers des méthodes du gestionnaire
|
// raccourcis vers des méthodes du gestionnaire
|
||||||
ResourceManager& View::getResourceManager() {
|
ResourceManager& State::getResourceManager() {
|
||||||
return manager.getResourceManager();
|
return manager.getResourceManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
sf::RenderWindow& View::getWindow() {
|
sf::RenderWindow& State::getWindow() {
|
||||||
return manager.getWindow();
|
return manager.getWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool View::isKeyPressed(sf::Keyboard::Key key) const {
|
bool State::isKeyPressed(sf::Keyboard::Key key) const {
|
||||||
return manager.isKeyPressed(key);
|
return manager.isKeyPressed(key);
|
||||||
}
|
}
|
Loading…
Reference in New Issue