while (!m_endGame)
{
m_action = getch();
switch(m_action)
{
case ERR:
break;
case KEY_RIGHT:
m_game->moveRight(1);
break;
case KEY_LEFT:
m_game->moveLeft(1);
break;
case (int)' ':
m_game->shoot();
break;
case (int)'z':
m_game->changeCannonCollor();
break;
case 27:
m_endGame = true;
break;
}
Вот фрагмент кода игры. Нужно чтобы пушка могла одновременно двигаться и стрелять но когда двигаю пушку например налево пушка останавливается потом стреляет и потом надо еще раз нажать стрелку для движения. помогите пож проверить сразу 2 нажатия клавиш
Так как вы программируете в линуксе, то должны знать, что каждая стрелка - это 3 символа: 27 91 и значащий символ (up 65, douwn 66, right 67, left 68). Поэтому пишем код:
if ((a = getch()) == 27 && getch () == 91)
switch (getch()) {
case up и т.д. - сдесь обработка стрелок
}
else {
сдесь обработка других символов
}
Надеюсь все понятно
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости