Вызовов getkeystate() и GetAsyncKeyState() и функцией getch()?
в чем разница между получением нажатия клавиши с помощью:
GetKeyState()
GetAsyncKeyState()
-
getch()
?
когда я должен использовать один над другим?
1 ответов
GetKeyState () и GetAsyncKeyState () являются специфичными для Windows API, в то время как getch () работает на других не специфичных для Windows компиляторах C.
GetKeyState () возвращает статус ключа из очереди сообщений потока. Состояние не отражает состояние уровня прерывания, связанное с оборудованием.
GetAsyncKeyState () указывает, была ли нажата клавиша С момента последнего вызова GetAsyncKeyState(), и является ли ключ сейчас или вниз. Если старший значащий бит установлен, клавиша вниз, и если младший значащий бит установлен, клавиша была нажата после предыдущего вызова GetAsyncKeyState().
на практике я видел, что если вы держите нажатой клавишу и назначаете поведение при нажатии клавиши, если вы используете GetKeyState(), поведение будет вызываться больше раз, чем если бы вы использовали GetAsyncKeyState().
в играх, я предпочитаю использовать GetAsyncKeyState().
(вы также можете проверьте более подробную информацию в блоге MSDN).