Использование нескольких _kbhit () в цикле

У меня есть объект космического корабля, который имеет 2 метода. Первый метод — это move ()

char touche;

if(_kbhit() != 0)
{
touche = _getch();
if(touche == 'k' || touche == 'l')
{
modifyPosition(touche);
}
}

Второй метод — стрелять ()

char touche;

if(_kbhit() != 0)
{
touche = _getch();
if(touche == char(32))
{
if(nbLasers < 30)
{
addLaser();
compteur++;
}
}
}

Оба метода вызываются через некоторое время, один за другим, поэтому второй метод почти никогда не работает, потому что мне нужно было бы нажимать «Пробел» точно после того, как он прошел метод move (). Я хочу разделить 2 метода, есть ли способ заставить эту работу работать?

0

Решение

Одним из простых подходов было бы сделать новый метод read_keyboard(),

Эта функция должна хранить состояние клавиатуры и другие ваши методы могут просто прочитать это сохраненное состояние.

if(_kbhit() != 0)
{
// I'm only explicitly writing "this->" to show that it's a member variable.
this->touche = _getch();
}
else
{
this->touche = 0;
}

Например, move сейчас просто становится:

if(touche == 'k' || touche == 'l')
{
modifyPosition(touche);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]