список ключевых констант - PullRequest
1 голос
/ 13 февраля 2012

Я хочу проверить ключевые события, такие как нажатие вверх / нажатие вниз ...

Но функция, которую я создал для вызова, получает "unsigned char".Я могу проверить ключи типа W / A / S / D с помощью key == 'w', но я не знаю, как проверить другие ключи.

Есть ли список доступных символов, например "\ n"?

Ответы [ 5 ]

4 голосов
/ 13 февраля 2012

Вы можете найти список escape-последовательностей символов здесь .

Обратите внимание, что некоторые ключи должны обрабатываться с использованием glutSpecialFunc() / glutSpecialUpFunc(), для обработчика которого применяется следующее:

Ключевой аргумент может принимать одно из следующих определенных постоянных значений:

  • GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12 - клавиши от F1 до F12
  • GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN - клавиши Page Up и Page Down
  • GLUT_KEY_HOME, GLUT_KEY_END - начальный и конечный ключи
  • GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN - клавиши со стрелками
  • GLUT_KEY_INSERT - Вставить ключ
0 голосов
/ 13 февраля 2012

Если я правильно понимаю, не существует независимого от системы способа получения необходимой информации.То, что вы ищете, я думаю, называется кодом сканирования, и у большинства систем есть способ получить его «под Unix, это будет что-то в библиотеке X, если вы работаете в окне, и под Windows,скорее всего, это будет и в библиотеке Windowing.То, что вы получите, это код сканирования плюс несколько битов, указывающих состояние различных клавиш, таких как shift, control и alt;и система управления окнами будет генерировать событие каждый раз, когда любая клавиша меняет состояние.

Если вы не работаете в окне (или в своем собственном окне), возможно, все еще будет возможно получить какое-то состояние ключаесли вы читаете прямо из терминала, хотя я не слишком знаком с возможностями.(Помните, что исторически входные интерфейсы были предназначены для чтения по последовательной линии, и такого рода информация просто не была доступна в C ++.)

0 голосов
/ 13 февраля 2012

это хороший список перечислений для ключей

http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.71).aspx

0 голосов
/ 13 февраля 2012

Вы запрашиваете escape-последовательности.

Здесь - полный список неграфических символов C ++ и их escape-последовательностей.

0 голосов
/ 13 февраля 2012

Тип натурального символа в C ++ использует символы ASCII. Вот список: http://www.asciitable.com/

Вы можете проверить что-то вроде новой строки, например:

if (key == '\n')
...