Не совсем понял. Точней совсем не понял. Scan code у них одинаковый (0x13).
Соответственно это одна клавиша. Или нет?
В играх довольно часто есть разница между enter основной клавиатуры и нумпада...
Я вообще-т про того , кто первый придумал USE HatID AS KEYPAD.
Надеюсь он на нас не обидится - за использование идеи.
Когда-то где-то слышал, что основная часть софта под Кугар написана энтузиастами - бетатестерами...
Что до самого оператора... Пожалуй процитирую весь блок (может ещё чего пригодится):
[spoiler]
4.1.6 Использование хэта для эмуляции клавиш цифровой клавиатуры
Конфигурационное выражение
USE HatID AS KEYPAD [- дополнительные модификаторы]
Разрешенные дополнительные модификаторы:
REVERSE_UD, REVERSE_LR, FORCED_CORNERS, NOHOLD, KP5
напр.: USE HAT4 AS KEYPAD
Очень часто необходимо при помощи хэта воспроизводить клавиши цифровой клавиатуры. В приведенном примере хэт 4 эмулирует клавиши цифровой клавиатуры, при этом в промежуточных положениях (UL UR, DL, DR) генерируются клавиши "7 9 1 3" соответственно.
Проблема с цифровой клавиатурой заключается в том, что в различных авиасимуляторах она работает по-разному. Более того, в некоторых играх еще имеет значение статус кнопки Num LOCK, или игры в принудительном порядке включают или выключают ее. Однако в большинстве случаев цифровая клавиатура работает согласно названию - то есть воспроизводит цифры.
Как и в предыдущих примерах, можно использовать инверсию:
USE HAT1 AS KEYPAD - REVERSE_UD
USE HAT2 AS KEYPAD - REVERSE_LR
USE HAT3 AS KEYPAD - REVERSE_UD, REVERSE_LR
Как было сказано, использование данного выражения позволяет при перемещениях хэта генерировать клавиши цифровой клавиатуры. Но там есть еще одна клавиша - "5". В некоторых симуляторах эта клавиша используется для центровки вида или положения чего-либо, и можно запрограммировать эту клавишу на центральное положение хэта:
USE HAT4 AS KEYPAD - KP5
Можно также использовать принудительное генерирование промежуточных положений:
USE HAT4 AS KEYPAD - FORCED_CORNERS
В данном случае при отклонении хэта 4, скажем, вправо-вверх будет сгенерировано сочетание "KP8" и "KP6" вместо KP9, то есть комбинация символов, назначенных на соседние основные положения.
В некоторых симуляторах это может оказаться полезным.
Опять же, если вы не хотите, чтобы клавиши цифровой клавиатуры удерживались, используйте модификатор NOHOLD:
USE HAT3 AS KEYPAD - NOHOLD
В этом случае при перемещении хэта в определенное положение будет генерироваться одиночный символ.
Все описанные модификаторы могут использоваться совместно:
USE HAT4 AS KEYPAD - REVERSE_UD, REVERSE_LR, FORCED_CORNERS, NOHOLD, KP5
4.1.7 Каким образом компилятор преобразует выражения USE HatID AS
Данный раздел предназначен для продвинутых пользователей, желающих ознакомиться со всеми подробностями!
Для того, чтобы понять данный раздел, необходимо прочесть другие разделы руководства. Итак, для любителей технических подробностей: как компилятор преобразует выражения USE HATx AS что-то_полезное. Начнем с выражения USE HATx AS MOUSE.
USE HAT1 AS MOUSE (2) преобразуется компилятором в следующее:
USE HAT1 FORCED_CORNERS
BTN H1U /P MSY(2-) /R MSY(2+)
BTN H1R /P MSX (2+) /R MSX (2-)
BTN H1D /P MSY (2+) /R MSY (2-)
BTN H1L /P MSX (2-) /R MSX (2+)
Точно также:
USE HAT1 AS MOUSE (2) - REVERSE_UD
преобразуется в:
USE HAT1 FORCED_CORNERS
BTN H1U /P MSY(2+) /R MSY(2-)
BTN H1R /P MSX (2+) /R MSX (2-)
BTN H1D /P MSY (2-) /R MSY (2+)
BTN H1L /P MSX (2-) /R MSX (2+)
и наконец:
USE HAT1 AS MOUSE (2) - REVERSE_UD, REVERSE_LR
в:
USE HAT1 FORCED_CORNERS
BTN H1U /P MSY(2+) /R MSY(2-)
BTN H1R /P MSX (2-) /R MSX (2+)
BTN H1D /P MSY (2-) /R MSY (2+)
BTN H1L /P MSX (2+) /R MSX (2-)
Теперь рассмотрим преобразование выражения ARROWKEYS:
USE HAT2 AS ARROWKEYS
преобразуется в:
USE HAT2 FORCED_CORNERS
BTN H2U /H UARROW
BTN H2R /H RARROW
BTN H2D /H DARROW
BTN H2L /H LARROW
соответственно:
USE HAT2 AS ARROWKEYS - REVERSE_UD, NOHOLD
преображается в:
USE HAT2 FORCED_CORNERS
BTN H2U DARROW
BTN H2R RARROW
BTN H2D UARROW
BTN H2L LARROW
Заметьте, что верхнее и нижнее положения поменялись местами, а добавление модификатора NOHOLD убирает из выражений ключ /H.
И наконец:
USE HAT4 AS KEYPAD
преобразуется в:
BTN H4U /H KP8
BTN H4R /H KP6
BTN H4D /H KP2
BTN H4L /H KP4
BTN H4UR /H KP9
BTN H4DR /H KP3
BTN H4DL /H KP1
BTN H4UL /H KP7
соответственно:
USE HAT4 AS KEYPAD - REVERSE_UD, NOHOLD
в:
BTN H4U KP2
BTN H4R KP6
BTN H4D KP8
BTN H4L KP4
BTN H4UR KP3
BTN H4DR KP9
BTN H4DL KP7
BTN H4UL KP1
Отметьте, что при инверсии верхнего и нижнего положений изменяются автоматически и промежуточные положения.
То же самое справедливо и для REVERSE_LR:
USE HAT4 AS KEYPAD - REVERSE_LR
преобразуется в:
BTN H4U /H KP8
BTN H4R /H KP4
BTN H4D /H KP2
BTN H4L /H KP6
BTN H4UR /H KP7
BTN H4DR /H KP1
BTN H4DL /H KP3
BTN H4UL /H KP9
Если используется принудительное генерирование промежуточных положений:
USE HAT4 AS KEYPAD - FORCED_CORNERS
компилятор выполняет следующие преобразования:
USE HAT4 FORCED_CORNERS
BTN H4U /H KP8
BTN H4R /H KP6
BTN H4D /H KP2
BTN H4L /H KP4
И, наконец, при:
USE HAT4 AS KEYPAD - KP5
компилятор генерирует дополнительную строку:
BTN H4M KP5
Заметьте, что на центральном положении ключ /H не используется - там нужен единичный символ.
[/spoiler]
Defender Cobra M5 + NJoy32 Pro + метал. механика