diff options
| author | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-05-01 11:59:40 +0200 |
|---|---|---|
| committer | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-05-01 11:59:40 +0200 |
| commit | 03b57472fc9df72691a112f7b7ba2e7ebb1675cc (patch) | |
| tree | 2e7ddbf4c2322a18a8353ab887564ad097614bf3 | |
| parent | 6392288967fa76515c6789d5b99b91d76472caf4 (diff) | |
Add arrow support for ConsoleController (using SFML Keyboard.hpp)
| -rw-r--r-- | src/Controller/ConsoleController/ConsoleController.cpp | 73 | ||||
| -rw-r--r-- | src/Model/Grid.cpp | 1 |
2 files changed, 64 insertions, 10 deletions
diff --git a/src/Controller/ConsoleController/ConsoleController.cpp b/src/Controller/ConsoleController/ConsoleController.cpp index f4d6b4d..81e16f4 100644 --- a/src/Controller/ConsoleController/ConsoleController.cpp +++ b/src/Controller/ConsoleController/ConsoleController.cpp @@ -1,4 +1,6 @@ #include "./ConsoleController.hpp" +#include <SFML/Window/Keyboard.hpp> +#include "../../Model/ModelConstants.hpp" ConsoleController::ConsoleController() { @@ -12,35 +14,88 @@ ConsoleController::~ConsoleController() void ConsoleController::play() { + + std::cout << "Use arrows to play !" << std::endl; + + //Init keyPress + Direction keyPress; + + //Display the first grid + m_game->showGrid(); + + //Start game while (!m_game->isOver()) { - m_game->showGrid(); - char moveChoice = ' '; + //Wait for keypress + while(1){ + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) + { + keyPress=LEFT; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) + { + //Wait for release + } + break; + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) + { + keyPress=RIGHT; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) + { + //Wait for release + } + break; + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) + { + keyPress=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=DOWN; + while(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) + { + //Wait for release + } + break; + } + } - std::cin >> moveChoice; - switch (moveChoice) + //Check for keypress + switch (keyPress) { - case 'z': + case UP: std::cout << "up" << std::endl; break; - case 's': + case DOWN: std::cout << "down" << std::endl; break; - case 'q': + case LEFT: std::cout << "left" << std::endl; break; - case 'd': + case RIGHT: std::cout << "right" << std::endl; break; - default: + default: break; } + //Show the Grid + m_game->showGrid(); std::cout << std::endl; + + //Pop new number m_game->pop(); + } } diff --git a/src/Model/Grid.cpp b/src/Model/Grid.cpp index e484fc3..75c0209 100644 --- a/src/Model/Grid.cpp +++ b/src/Model/Grid.cpp @@ -29,7 +29,6 @@ Grid::~Grid() } } - void Grid::show() { std::cout << "_________________" << std::endl; |
