summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Controller/ConsoleController/ConsoleController.cpp117
-rw-r--r--src/Controller/ConsoleController/ConsoleController.hpp2
2 files changed, 65 insertions, 54 deletions
diff --git a/src/Controller/ConsoleController/ConsoleController.cpp b/src/Controller/ConsoleController/ConsoleController.cpp
index 81e16f4..a2a4a77 100644
--- a/src/Controller/ConsoleController/ConsoleController.cpp
+++ b/src/Controller/ConsoleController/ConsoleController.cpp
@@ -14,7 +14,7 @@ ConsoleController::~ConsoleController()
void ConsoleController::play()
{
-
+ //Intruction msg
std::cout << "Use arrows to play !" << std::endl;
//Init keyPress
@@ -26,67 +26,26 @@ void ConsoleController::play()
//Start game
while (!m_game->isOver())
{
- //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;
- }
- }
+ //Get key press
+ keyPress=this->waitArrowKeyPress();
+
+ //New line for the console print arrow press
+ std::cout << std::endl;
- //Check for keypress
- switch (keyPress)
- {
+ //Print keyPress
+ switch(keyPress){
case UP:
- std::cout << "up" << std::endl;
+ std::cout << "Keypress : Up" << std::endl;
break;
-
case DOWN:
- std::cout << "down" << std::endl;
+ std::cout << "Keypress : Down" << std::endl;
break;
-
case LEFT:
- std::cout << "left" << std::endl;
+ std::cout << "Keypress : Left" << std::endl;
break;
case RIGHT:
- std::cout << "right" << std::endl;
- break;
-
- default:
+ std::cout << "Keypress : Right" << std::endl;
break;
}
@@ -94,8 +53,60 @@ void ConsoleController::play()
m_game->showGrid();
std::cout << std::endl;
+
//Pop new number
m_game->pop();
}
}
+
+
+
+Direction ConsoleController::waitArrowKeyPress()
+{
+ //Initialise keyPress
+ Direction keyPress;
+
+ //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;
+ }
+ }
+
+ return keyPress;
+}
diff --git a/src/Controller/ConsoleController/ConsoleController.hpp b/src/Controller/ConsoleController/ConsoleController.hpp
index 2cda804..317759c 100644
--- a/src/Controller/ConsoleController/ConsoleController.hpp
+++ b/src/Controller/ConsoleController/ConsoleController.hpp
@@ -15,7 +15,7 @@ class ConsoleController
private:
Game * m_game;
-
+ Direction waitArrowKeyPress();
public:
ConsoleController();
~ConsoleController();