Скан-коды
Давайте теперь поговорим о такой вещи как скан-коды. Если вы считаете, что при нажатии клавиши А обработчик клавиатуры также получает код символа А, то вы ошибаетесь. К сожалению, это не так. Обработчику посылается скан-код. Более того, он посылается дважды — при нажатии и отпускании клавиши. В видеоиграх нас будут интересовать не столько ASCII-коды, сколько нажатия клавиш A, S, Пробел, которые обычно отвечают за маневры, стрельбу и т. д. Таким образом, нам надо знать, как получить именно скан-коды. И это все, что требуется. В таблице 3.2 перечислены скан-коды клавиш.
Таблица 3.2. Таблица скан-кодов.
Клавиша Скан-код Клавиша Скан-код Клавиша Скан-код Клавиша Скан-код Esc 1 I 22 Z 43 F7 64 1 2 O 23 X 44 F8 65 2 3 P 24 C 45 F9 66 4 4 [ 25 V 46 F10 67 5 5 ] 26 B 47 F11 133 6 6 Enter 27 N 48 F12 134 7 7 Ctrl 28 M 49 Num Lock 69 8 8 A 29 Запятая 50 Scroll Lock 70 9 9 S 30 Точка 51 Home 71 0 10 D 31 / 52 Up 72 - 11 F 32 Правый Shift 53 PgUp 73 = 12 G 33 Print Screen 54 Серый - 74 Backspace 13 H 34 Alt 55 Left 75 Tab 14 J 35 Пробел 56 5 на цифр. клав. 76 Q 15 K 36 Caps Lock 57 Right 77 W 16 L 37 F1 58 Серый + 78 E 17 ; 38 F2 59 End 79 R 18 Апостроф 39 F3 60 Down 80 T 19 ~ 40 F4 61 PgDn 81 Y 20 Левый Shift 41 F5 62 Ins 82 U 21 \ 42 F6 63 Del 83
Если вы внимательно изучали таблицу, то должны, были заметить, что клавиши; имеющие двухсимвольную кодировку, обладают, тем не менее, только одним скан-кодом. Это происходит потому, что каждый скан-код может быть дополнен информацией о статусе клавиш. Кроме того, благодаря таблице 3.2, мы теперь сами можем по скан-коду определять код ASCII.