Скан-коды
Давайте теперь поговорим о такой вещи как скан-коды. Если вы считаете, что при нажатии клавиши А обработчик клавиатуры также получает код символа А, то вы ошибаетесь. К сожалению, это не так. Обработчику посылается скан-код. Более того, он посылается дважды — при нажатии и отпускании клавиши. В видеоиграх нас будут интересовать не столько 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.