Как использовать kbhit() с задержкой без ожидания

Я делаю программу с бесконечным циклом. Я использовал kbhit(), чтобы определить, нажата клавиша или нет. Я также использую задержку в цикле. Итак, проблема в том, что если я нажму клавишу, мне придется ждать времени, указанного в функции задержки, для выполнения действий функции kbhit().....

while(1)
{
delay(1000);
if(kbhit()) 
{
//
//
//
//
}
}

// теперь мне нужно ждать 1000 мс, чтобы выполнить код kbhit(), как решить эту проблему..

Заранее спасибо....


person Linkin    schedule 28.11.2012    source источник
comment
Погуглите концепцию событийно-ориентированного программирования.   -  person    schedule 29.11.2012
comment
kbhit() — это человеческая функция времени. Люди не могут определить, когда вы задерживаете (10), они заметят задержку (1000).   -  person Hans Passant    schedule 29.11.2012


Ответы (1)


Пожалуйста, улучшите свой способ спросить! В любом случае, я попытаюсь вам помочь: кажется, вы хотите использовать прерывания.

Но в большинстве случаев достаточно проверять ввод с клавиатуры с определенной скоростью. Например. игра, которая работает со скоростью 60 кадров в секунду, не требует более 60 проверок в секунду. Вы можете объяснить, для чего вам нужен этот способ обработки клавиш.

person Peter Wildemann    schedule 28.11.2012