From 3c66542bca30c82da9023857f352a7480ea1cc64 Mon Sep 17 00:00:00 2001 From: maelle Date: Wed, 6 Apr 2016 11:38:13 +0200 Subject: [PATCH 1/3] =?UTF-8?q?D=C3=A9but=20du=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/menu.hpp | 46 ++++++++++++++++++++++++++++ res/Raleway-Regular.ttf | Bin 0 -> 130128 bytes src/main.cpp | 5 +++- src/menu.cpp | 65 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 include/menu.hpp create mode 100644 res/Raleway-Regular.ttf create mode 100644 src/menu.cpp diff --git a/include/menu.hpp b/include/menu.hpp new file mode 100644 index 0000000..fd0f25f --- /dev/null +++ b/include/menu.hpp @@ -0,0 +1,46 @@ +#ifndef __PTF_MENU_HPP__ +#define __PTF_MENU_HPP__ + +#include +#include "manager.hpp" +#include "view.hpp" +#include "resource_manager.hpp" +#include + +#define NB_CHOICES 4 + +/** + * La classe Menu charge le menu du jeu + * et permet de choisir entre jouer, lire les règles + * et quitter. + */ +class Menu : public View { + +public: + Menu(Manager& manager); + virtual ~Menu(); + + /** + * Dessine le menu + */ + void frame(); + + /** + * + */ + void MoveUp(); + void MoveDown(); + +private: + //repère le choix sélectionné + int selection; + + sf::Font font; + + //tableau de textes modélisant les différents + //choix dans le menu + sf::Text choice[NB_CHOICES]; +}; + + +#endif diff --git a/res/Raleway-Regular.ttf b/res/Raleway-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..252cad14a6c1179cf373ed30d79ece6510743ae1 GIT binary patch literal 130128 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

{{TT*% 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 F_&?-r`R@P# literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index c86c223..e3d73d6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,11 +1,14 @@ #include "manager.hpp" #include "editor.hpp" +#include "menu.hpp" +#include "game.hpp" #include #include #include int main() { Manager manager; + std::shared_ptr

menu = std::shared_ptr(new Menu(manager)); std::shared_ptr editor = std::shared_ptr(new Editor(manager)); try { @@ -15,7 +18,7 @@ int main() { editor->load(file); file.close(); - manager.setView(editor); + manager.setView(menu); manager.start(); } catch (const std::exception& exception) { std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl; diff --git a/src/menu.cpp b/src/menu.cpp new file mode 100644 index 0000000..6cacdbd --- /dev/null +++ b/src/menu.cpp @@ -0,0 +1,65 @@ +#include "menu.hpp" + +Menu::Menu(Manager& manager) : View(manager){ + + //mise en place des propriétés des textes affichés dans le menu + choice[0].setFont(manager.getResourceManager().getFont("Raleway-Regular.ttf")); + choice[0].setColor(sf::Color::Red); + choice[0].setPosition(sf::Vector2f(460, 400/(NB_CHOICES + 1))); + + for(int i=1; i < NB_CHOICES; i++) + { + choice[i].setFont(manager.getResourceManager().getFont("Raleway-Regular.ttf")); + choice[i].setColor(sf::Color::White); + choice[i].setPosition(sf::Vector2f(460, 400/((NB_CHOICES + 1))*(i+1))); + } + choice[0].setString("Jouer"); + choice[1].setString("Regles du jeu"); + choice[2].setString("Creer un niveau"); + choice[3].setString("Quitter"); + + //choix sélectionné à l'ouverture du menu + selection = 0; + + if (manager.isKeyPressed(sf::Keyboard::Up)) { + MoveUp(); + } + if (manager.isKeyPressed(sf::Keyboard::Down)) { + MoveDown(); + } +} + +Menu::~Menu(){ +} + +void Menu::frame(){ + sf::RenderWindow& window = manager.getWindow(); + window.clear(sf::Color(66, 165, 245)); + + //dessin des textes du menu + for(int i=0; i= 0) + { + choice[selection].setColor(sf::Color::White); + selection--; + choice[selection].setColor(sf::Color::Red); + } +} + +void Menu::MoveDown() +{ + if(selection+1 >= NB_CHOICES) + { + choice[selection].setColor(sf::Color::White); + selection++; + choice[selection].setColor(sf::Color::Red); + } +} From 0ea89bdd0939f76ff1d576fc05caeb9c7e977908 Mon Sep 17 00:00:00 2001 From: maelle Date: Wed, 6 Apr 2016 18:16:39 +0200 Subject: [PATCH 2/3] Modification du menu --- include/lvl_menu.hpp | 48 ++++++++++++++++++++++ include/menu.hpp | 6 ++- src/lvl_menu.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++++ src/menu.cpp | 67 +++++++++++++++++++++--------- 4 files changed, 197 insertions(+), 21 deletions(-) create mode 100644 include/lvl_menu.hpp create mode 100644 src/lvl_menu.cpp diff --git a/include/lvl_menu.hpp b/include/lvl_menu.hpp new file mode 100644 index 0000000..5c1e373 --- /dev/null +++ b/include/lvl_menu.hpp @@ -0,0 +1,48 @@ +#ifndef __PTF_LVL_MENU_HPP__ +#define __PTF_LVL_MENU_HPP__ + +#include +#include +#include "manager.hpp" +#include "game.hpp" +#include "view.hpp" +#include "resource_manager.hpp" +#include + +#define NB_LVL_CHOICES 3 + +/** + * La classe Lvl_menu charge le menu permettant de + * choisir le niveau auquel l'utilisateur souhaite + * jouer. + */ +class Lvl_menu : public View { + +public: + Lvl_menu(Manager& manager); + virtual ~Lvl_menu(); + + /** + * Dessine le menu de niveaux + */ + void frame(); + + /** + * Permet de changer le choix sélectionné + */ + void MoveUp(); + void MoveDown(); + +private: + //repère le choix sélectionné + int selection; + + sf::Font font; + + //tableau de textes modélisant les différents + //choix dans le menu + sf::Text choice[NB_LVL_CHOICES]; +}; + + +#endif diff --git a/include/menu.hpp b/include/menu.hpp index fd0f25f..0ae2fc3 100644 --- a/include/menu.hpp +++ b/include/menu.hpp @@ -2,8 +2,12 @@ #define __PTF_MENU_HPP__ #include +#include #include "manager.hpp" +#include "game.hpp" +#include "editor.hpp" #include "view.hpp" +#include "lvl_menu.hpp" #include "resource_manager.hpp" #include @@ -26,7 +30,7 @@ public: void frame(); /** - * + * Permet de changer le choix sélectionné */ void MoveUp(); void MoveDown(); diff --git a/src/lvl_menu.cpp b/src/lvl_menu.cpp new file mode 100644 index 0000000..68fd8df --- /dev/null +++ b/src/lvl_menu.cpp @@ -0,0 +1,97 @@ +#include "lvl_menu.hpp" + +Lvl_menu::Lvl_menu(Manager& manager) : View(manager){ + + //mise en place des propriétés des textes affichés dans le menu + choice[0].setFont(manager.getResourceManager().getFont("Raleway-Regular.ttf")); + choice[0].setColor(sf::Color::Red); + choice[0].setPosition(sf::Vector2f(300, 400/(NB_LVL_CHOICES + 1))); + + for(int i=1; i < NB_LVL_CHOICES; i++) + { + choice[i].setFont(manager.getResourceManager().getFont("Raleway-Regular.ttf")); + choice[i].setColor(sf::Color::White); + choice[i].setPosition(sf::Vector2f(300, 400/((NB_LVL_CHOICES + 1))*(i+1))); + } + choice[0].setString("Tutoriel"); + choice[1].setString("Niveau 1"); + choice[2].setString("Niveau 2"); + + //choix sélectionné à l'ouverture du menu + selection = 0; +} + +Lvl_menu::~Lvl_menu(){ +} + + +void Lvl_menu::MoveUp() +{ + //change la couleur du choix sélectionné + if(selection-1 >= 0) + { + choice[selection].setColor(sf::Color::White); + selection--; + choice[selection].setColor(sf::Color::Red); + } +} + +void Lvl_menu::MoveDown() +{ + //change la couleur du choix sélectionné + if(selection+1 < NB_LVL_CHOICES) + { + choice[selection].setColor(sf::Color::White); + selection++; + choice[selection].setColor(sf::Color::Red); + } +} + +void Lvl_menu::frame(){ + sf::RenderWindow& window = manager.getWindow(); + window.clear(sf::Color(66, 40, 245)); + + const std::vector& events = manager.getEvents(); + + for (unsigned int i = 0; i < events.size(); i++) { + const sf::Event& event = events[i]; + + // gestion des touches + if (event.type == sf::Event::KeyPressed) { + if (event.key.code == sf::Keyboard::Up) { + MoveUp(); + } + if (event.key.code == sf::Keyboard::Down) { + MoveDown(); + } + if (event.key.code == sf::Keyboard::Return) { + //si on choisit "tutoriel", on charge le niveau + //tutoriel et la vue se met sur Game + if(selection==0){ + std::shared_ptr editor = std::shared_ptr(new Editor(manager)); + try { + // ouverture du niveau + std::ifstream file; + file.open("./levels/level1.dat", std::ios::binary | std::ios::in); + editor->load(file); + file.close(); + + } catch (const std::exception& exception) { + std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl; + std::cerr << exception.what() << std::endl; + } + std::shared_ptr game = std::shared_ptr(new Game(manager)); + manager.setView(game); + } + } + } + } + + for(int i=0; i= 0) { choice[selection].setColor(sf::Color::White); @@ -56,10 +39,54 @@ void Menu::MoveUp() void Menu::MoveDown() { - if(selection+1 >= NB_CHOICES) + //change la couleur du choix sélectionné + if(selection+1 < NB_CHOICES) { choice[selection].setColor(sf::Color::White); selection++; choice[selection].setColor(sf::Color::Red); } } + +void Menu::frame(){ + sf::RenderWindow& window = manager.getWindow(); + window.clear(sf::Color(66, 40, 245)); + + const std::vector& events = manager.getEvents(); + + for (unsigned int i = 0; i < events.size(); i++) { + const sf::Event& event = events[i]; + + // gestion des touches + if (event.type == sf::Event::KeyPressed) { + if (event.key.code == sf::Keyboard::Up) { + MoveUp(); + } + if (event.key.code == sf::Keyboard::Down) { + MoveDown(); + } + if (event.key.code == sf::Keyboard::Return) { + //si on choisit "jouer", la vue se met sur Lvl_menu + if(selection==0){ + std::shared_ptr lvl_menu = std::shared_ptr(new Lvl_menu(manager)); + manager.setView(lvl_menu); + } + if(selection==1){ + + } + //si on choisit "créer un niveau", la vue se met sur Editor + if(selection==2){ + std::shared_ptr editor = std::shared_ptr(new Editor(manager)); + manager.setView(editor); + } + } + } + } + + for(int i=0; i Date: Wed, 6 Apr 2016 20:04:28 +0200 Subject: [PATCH 3/3] Correction du chargement du niveau --- include/editor.hpp | 4 ++-- include/lvl_menu.hpp | 7 ++++--- src/lvl_menu.cpp | 44 +++++++++++++++++++++----------------------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/include/editor.hpp b/include/editor.hpp index b6cbbd7..8011e72 100644 --- a/include/editor.hpp +++ b/include/editor.hpp @@ -1,5 +1,5 @@ -#ifndef __PTF_GAME_HPP__ -#define __PTF_GAME_HPP__ +#ifndef __PTF_EDITOR_HPP__ +#define __PTF_EDITOR_HPP__ #include "level.hpp" diff --git a/include/lvl_menu.hpp b/include/lvl_menu.hpp index 5c1e373..3428d63 100644 --- a/include/lvl_menu.hpp +++ b/include/lvl_menu.hpp @@ -5,6 +5,7 @@ #include #include "manager.hpp" #include "game.hpp" +#include "editor.hpp" #include "view.hpp" #include "resource_manager.hpp" #include @@ -12,7 +13,7 @@ #define NB_LVL_CHOICES 3 /** - * La classe Lvl_menu charge le menu permettant de + * La classe Lvl_menu charge le menu permettant de * choisir le niveau auquel l'utilisateur souhaite * jouer. */ @@ -24,11 +25,11 @@ public: /** * Dessine le menu de niveaux - */ + */ void frame(); /** - * Permet de changer le choix sélectionné + * Permet de changer le choix sélectionné */ void MoveUp(); void MoveDown(); diff --git a/src/lvl_menu.cpp b/src/lvl_menu.cpp index 68fd8df..530d384 100644 --- a/src/lvl_menu.cpp +++ b/src/lvl_menu.cpp @@ -1,7 +1,7 @@ #include "lvl_menu.hpp" Lvl_menu::Lvl_menu(Manager& manager) : View(manager){ - + //mise en place des propriétés des textes affichés dans le menu choice[0].setFont(manager.getResourceManager().getFont("Raleway-Regular.ttf")); choice[0].setColor(sf::Color::Red); @@ -18,7 +18,7 @@ Lvl_menu::Lvl_menu(Manager& manager) : View(manager){ choice[2].setString("Niveau 2"); //choix sélectionné à l'ouverture du menu - selection = 0; + selection = 0; } Lvl_menu::~Lvl_menu(){ @@ -26,7 +26,7 @@ Lvl_menu::~Lvl_menu(){ void Lvl_menu::MoveUp() -{ +{ //change la couleur du choix sélectionné if(selection-1 >= 0) { @@ -52,37 +52,36 @@ void Lvl_menu::frame(){ window.clear(sf::Color(66, 40, 245)); const std::vector& events = manager.getEvents(); - + for (unsigned int i = 0; i < events.size(); i++) { const sf::Event& event = events[i]; - + // gestion des touches if (event.type == sf::Event::KeyPressed) { if (event.key.code == sf::Keyboard::Up) { MoveUp(); } + if (event.key.code == sf::Keyboard::Down) { MoveDown(); } - if (event.key.code == sf::Keyboard::Return) { - //si on choisit "tutoriel", on charge le niveau - //tutoriel et la vue se met sur Game - if(selection==0){ - std::shared_ptr editor = std::shared_ptr(new Editor(manager)); - try { - // ouverture du niveau - std::ifstream file; - file.open("./levels/level1.dat", std::ios::binary | std::ios::in); - editor->load(file); - file.close(); - } catch (const std::exception& exception) { - std::cerr << "Le programme a quitté après une erreur d'exécution." << std::endl; - std::cerr << exception.what() << std::endl; - } - std::shared_ptr game = std::shared_ptr(new Game(manager)); - manager.setView(game); + if (event.key.code == sf::Keyboard::Return) { + std::shared_ptr game = std::shared_ptr(new Game(manager)); + std::string path; + + switch (selection) { + case 0: + path = "./levels/level1.dat"; + break; } + + std::ifstream file; + file.open(path, std::ios::binary | std::ios::in); + game->load(file); + file.close(); + + manager.setView(game); } } } @@ -94,4 +93,3 @@ void Lvl_menu::frame(){ window.display(); } -