проблема с getch() в игре

171
09 января 2018, 14:50
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 нажатия клавиш

Answer 1

Так как вы программируете в линуксе, то должны знать, что каждая стрелка - это 3 символа: 27 91 и значащий символ (up 65, douwn 66, right 67, left 68). Поэтому пишем код:

if ((a = getch()) == 27 && getch () == 91)
    switch (getch()) {
        case up и т.д. - сдесь обработка стрелок
    }
else {
    сдесь обработка других символов
}

Надеюсь все понятно

READ ALSO
Ошибка решения СЛАУ

Ошибка решения СЛАУ

Пытаюсь правильно составить слау, чтобы решить ГауссомПолучился примерно такой код:

196
Решение СЛАУ по модулю

Решение СЛАУ по модулю

Ребят, подскажите пожалуйстаКаким способом, можно решить СЛАУ, если у тебя ответы даны по модулю

156