Isolate keypress waiting in a method
This commit is contained in:
parent
03b57472fc
commit
672358a947
2 changed files with 65 additions and 54 deletions
|
@ -14,7 +14,7 @@ ConsoleController::~ConsoleController()
|
||||||
|
|
||||||
void ConsoleController::play()
|
void ConsoleController::play()
|
||||||
{
|
{
|
||||||
|
//Intruction msg
|
||||||
std::cout << "Use arrows to play !" << std::endl;
|
std::cout << "Use arrows to play !" << std::endl;
|
||||||
|
|
||||||
//Init keyPress
|
//Init keyPress
|
||||||
|
@ -26,67 +26,26 @@ void ConsoleController::play()
|
||||||
//Start game
|
//Start game
|
||||||
while (!m_game->isOver())
|
while (!m_game->isOver())
|
||||||
{
|
{
|
||||||
//Wait for keypress
|
//Get key press
|
||||||
while(1){
|
keyPress=this->waitArrowKeyPress();
|
||||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
|
||||||
{
|
//New line for the console print arrow press
|
||||||
keyPress=LEFT;
|
std::cout << std::endl;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Check for keypress
|
//Print keyPress
|
||||||
switch (keyPress)
|
switch(keyPress){
|
||||||
{
|
|
||||||
case UP:
|
case UP:
|
||||||
std::cout << "up" << std::endl;
|
std::cout << "Keypress : Up" << std::endl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DOWN:
|
case DOWN:
|
||||||
std::cout << "down" << std::endl;
|
std::cout << "Keypress : Down" << std::endl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LEFT:
|
case LEFT:
|
||||||
std::cout << "left" << std::endl;
|
std::cout << "Keypress : Left" << std::endl;
|
||||||
break;
|
break;
|
||||||
case RIGHT:
|
case RIGHT:
|
||||||
std::cout << "right" << std::endl;
|
std::cout << "Keypress : Right" << std::endl;
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,8 +53,60 @@ void ConsoleController::play()
|
||||||
m_game->showGrid();
|
m_game->showGrid();
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
|
||||||
//Pop new number
|
//Pop new number
|
||||||
m_game->pop();
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ class ConsoleController
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Game * m_game;
|
Game * m_game;
|
||||||
|
Direction waitArrowKeyPress();
|
||||||
public:
|
public:
|
||||||
ConsoleController();
|
ConsoleController();
|
||||||
~ConsoleController();
|
~ConsoleController();
|
||||||
|
|
Loading…
Add table
Reference in a new issue