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