diff options
| author | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-05-01 13:18:26 +0200 |
|---|---|---|
| committer | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-05-01 13:18:26 +0200 |
| commit | 048f1e17b752d2af53db82c1861002283fc300fa (patch) | |
| tree | af7e01538efa1304e53ed89786ff7afeadc3a325 /src/Controllers/ConsoleController | |
| parent | 672358a947ff4bff7e0b4e0afaa90c30480ce65b (diff) | |
Add some newers things :
-Change helper ModelConstants to Keyboard
-Now helpers is in folder Helpers
-Change direction name to use CamelCase
Diffstat (limited to 'src/Controllers/ConsoleController')
| -rw-r--r-- | src/Controllers/ConsoleController/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/Controllers/ConsoleController/ConsoleController.cpp | 112 | ||||
| -rw-r--r-- | src/Controllers/ConsoleController/ConsoleController.hpp | 26 |
3 files changed, 141 insertions, 0 deletions
diff --git a/src/Controllers/ConsoleController/CMakeLists.txt b/src/Controllers/ConsoleController/CMakeLists.txt new file mode 100644 index 0000000..d42803f --- /dev/null +++ b/src/Controllers/ConsoleController/CMakeLists.txt @@ -0,0 +1,3 @@ +#Make Model lib +add_library(ConsoleController ./ConsoleController.cpp) +target_link_libraries(ConsoleController Model) diff --git a/src/Controllers/ConsoleController/ConsoleController.cpp b/src/Controllers/ConsoleController/ConsoleController.cpp new file mode 100644 index 0000000..4be0375 --- /dev/null +++ b/src/Controllers/ConsoleController/ConsoleController.cpp @@ -0,0 +1,112 @@ +#include "./ConsoleController.hpp" +#include <SFML/Window/Keyboard.hpp> +#include "../../Helpers/Keyboard.hpp" + +ConsoleController::ConsoleController() +{ + m_game = new Game(); +} + +ConsoleController::~ConsoleController() +{ + delete m_game; +} + +void ConsoleController::play() +{ + //Intruction msg + std::cout << "Use arrows to play !" << std::endl; + + //Init keyPress + kbdh::Direction keyPress; + + //Display the first grid + m_game->showGrid(); + + //Start game + while (!m_game->isOver()) + { + //Get key press + keyPress=this->waitArrowKeyPress(); + + //New line for the console print arrow press + std::cout << std::endl; + + + //Print keyPress + switch(keyPress){ + case kbdh::Up: + std::cout << "Keypress : Up" << std::endl; + break; + case kbdh::Down: + std::cout << "Keypress : Down" << std::endl; + break; + case kbdh::Left: + std::cout << "Keypress : Left" << std::endl; + break; + case kbdh::Right: + std::cout << "Keypress : Right" << std::endl; + break; + } + + //Show the Grid + m_game->showGrid(); + std::cout << std::endl; + + + //Pop new number + m_game->pop(); + + } +} + + + +kbdh::Direction ConsoleController::waitArrowKeyPress() +{ + //Initialise keyPress + kbdh::Direction keyPress; + + //Wait for keypress + while(1){ + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) + { + keyPress=kbdh::Left; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) + { + //Wait for release + } + break; + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) + { + keyPress=kbdh::Right; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) + { + //Wait for release + } + break; + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) + { + keyPress=kbdh::Up; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) + { + //Wait for release + } + break; + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) + { + // la touche "flèche gauche" est enfoncée : on bouge le personnage + keyPress=kbdh::Down; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) + { + //Wait for release + } + break; + } + } + + return keyPress; +} diff --git a/src/Controllers/ConsoleController/ConsoleController.hpp b/src/Controllers/ConsoleController/ConsoleController.hpp new file mode 100644 index 0000000..6ce8df9 --- /dev/null +++ b/src/Controllers/ConsoleController/ConsoleController.hpp @@ -0,0 +1,26 @@ +#ifndef DEF_CTCONSOLE +#define DEF_CTCONSOLE + +/* CTConsole.hpp + * Defines the class CTConsole + * CTConsole is a controller which displays a game in a terminal + * Creators : krilius, manzerbredes + * Date : 29/04/2915 */ + +#include <iostream> +#include "../../Helpers/Keyboard.hpp" +#include "../../Model/Game.hpp" + +class ConsoleController +{ + private: + + Game * m_game; + kbdh::Direction waitArrowKeyPress(); + public: + ConsoleController(); + ~ConsoleController(); + void play(); +}; + +#endif |
