#include "./ConsoleController.hpp" #include #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 (1) { std::cout << "Game over : " << m_game->isOver() << "fin"; //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; m_game->swipeRight(); 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; }