Мгновенный отклик от клавиатуры.
|
|
Drac | Дата: Среда, 25 Сентября 2013, 18:00 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Подскажите, как осуществить действие по нажатой и зажатой кнопки на клавиатуре. Желательно кинуть ссылку на материал.
Всем добра =)
|
|
| |
GameMix | Дата: Среда, 25 Сентября 2013, 18:25 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Код #include <windows.h> #include <iostream.h> int main() { while (true) if (GetKeyState('1') & 0x80) // нажата клавиша 1. { cout << "KeyPress"; return 0; } return 0; } Остальные коды клавиш можно посмотреть в winuser.h.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
TheAce | Дата: Среда, 25 Сентября 2013, 19:54 | Сообщение # 3 |
Pain is Pleasure
Сейчас нет на сайте
| GameMix, гм... бесконечный цикл? И почему мне не кажется, что это сильно умная идея?
The End [3D][TPS]
|
|
| |
MrNesh | Дата: Среда, 25 Сентября 2013, 20:06 | Сообщение # 4 |
Воин добра и света
Сейчас нет на сайте
| Цитата Мгновенный отклик от клавиатуры Если бы
|
|
| |
avolkoff | Дата: Среда, 25 Сентября 2013, 20:23 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Ставишь приоритет процесса на реального времени, делаешь цикл в потоке и только сканируешь клаву... И завершения обработки события не ждешь при нажатии
|
|
| |
MrNesh | Дата: Среда, 25 Сентября 2013, 20:24 | Сообщение # 6 |
Воин добра и света
Сейчас нет на сайте
| У тебя есть цикл игры Вынеси проверку в куданить и дергай её в начале Сохрани результат ещё Цитата (GameMix) if (GetKeyState('1') & 0x80) // нажата клавиша 1. { ... } Вот как я понял это что-то рабочее Просто продолжи else if'ом
Сообщение отредактировал jiumx60rus - Среда, 25 Сентября 2013, 20:25 |
|
| |
GameMix | Дата: Среда, 25 Сентября 2013, 20:27 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Цитата (TheAce) GameMix, гм... бесконечный цикл? И почему мне не кажется, что это сильно умная идея? Наверное, потому что ты слишком умный, в отличие от меня. Удиви меня, нуба, покажи лучший вариант для простой демонстрации работы GetKeyState()
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
avolkoff | Дата: Среда, 25 Сентября 2013, 21:23 | Сообщение # 8 |
частый гость
Сейчас нет на сайте
| Цитата (Drac) Подскажите, как осуществить действие по нажатой и зажатой кнопки на клавиатуре. Как вариант, может считывать состояние клавы в "массив состояний", при нажатии на клавишу регистрировать, что она была нажата, в другом массиве, при отжатии снимать "регистрацию". Ну и соответственно делать функцию типа Work(), которая этим будет заниматься. Вторая функция это проверка нажата ли она, третья зажата, четвертая отжата. Всего: массив состояний, массив состояний для зажатых клавиш (bool), 4 функции. Велосипедом попахивает наверно
Сообщение отредактировал avolkoff - Среда, 25 Сентября 2013, 21:25 |
|
| |
Asteroid | Дата: Четверг, 26 Сентября 2013, 09:02 | Сообщение # 9 |
Blender updated
Сейчас нет на сайте
| Цитата (Drac) как осуществить действие по нажатой и зажатой кнопки а какое действие надо ? перемещение курсора ? или нажатие клавиш ?
1 функция () { 2 функция () например leftPressed }
Может так как то ?
Сообщение отредактировал Asteroid - Четверг, 26 Сентября 2013, 09:08 |
|
| |
Izaron | Дата: Четверг, 26 Сентября 2013, 14:01 | Сообщение # 10 |
Rammstein forever
Сейчас нет на сайте
| Цитата (jiumx60rus) Вот как я понял это что-то рабочее Просто продолжи else if'ом Што? Можно же просто прогнать все коды клавиш от 0 до 255
|
|
| |
Drac | Дата: Суббота, 28 Сентября 2013, 23:38 | Сообщение # 11 |
частый гость
Сейчас нет на сайте
| В общем, спасибо за ответ, плюс как и было обещано я поставил. Однако, я просил кинуть ссылку на материал, что-бы рассмотреть все со всех сторон как говорится. Пока-же я использую функцию _getch(); и бесконечный цикл.
Собственно за ссылку на хороший материал конечно же плюсану. :) Сам бы нашел, сижу с телефона. Трафик...
Всем добра =)
|
|
| |
MrNesh | Дата: Воскресенье, 29 Сентября 2013, 00:16 | Сообщение # 12 |
Воин добра и света
Сейчас нет на сайте
| Izaron, зачем...используется только штуки 4-5
|
|
| |