- 20 Дек 2016
- 892
- 170
Допустим, у меня на F1 стоит выбор героя. Нужно перехватить нажатие этой клавиши и выполнить свое действие, вместо выбора героя.
В js вообще есть адекватный способ обработки клавиатуры? В идеале мне бы просто назначить какую-то функцию, которая получает код нажатой клавиши, тип нажатия, и должна вернуть, стоит ли транслировать это нажатие последующим обработчикам. Но такое есть только для мыши.
С помощью
Во-первых, не понял как отменить бинд, сделанный с помощью CreateCustomKeyBind. Если игрок посреди игры переназначит клавишу, то я не смогу удалить бинд со старой, и она станет недоступна для других команд.
AddCommand - вообще какая-то говнина. Удалить команду нельзя, дважды использовать для одной команды нельзя, однако при перезагрузке скрипта работать перестанет. Предполагаю, что при переподключении все команды, сделанные с помощью AddCommand, перестанут работать.
Других способов взаимодействия с клавиатурой не нашел.
Кому молиться?
В js вообще есть адекватный способ обработки клавиатуры? В идеале мне бы просто назначить какую-то функцию, которая получает код нажатой клавиши, тип нажатия, и должна вернуть, стоит ли транслировать это нажатие последующим обработчикам. Но такое есть только для мыши.
С помощью
Game.CreateCustomKeyBind()
и Game.AddCommand()
ничего не получается.Во-первых, не понял как отменить бинд, сделанный с помощью CreateCustomKeyBind. Если игрок посреди игры переназначит клавишу, то я не смогу удалить бинд со старой, и она станет недоступна для других команд.
AddCommand - вообще какая-то говнина. Удалить команду нельзя, дважды использовать для одной команды нельзя, однако при перезагрузке скрипта работать перестанет. Предполагаю, что при переподключении все команды, сделанные с помощью AddCommand, перестанут работать.
$.RegisterKeyBind
требует фокус на какой-либо панели, а из-за этого все управляющие кнопки перестают работать.Других способов взаимодействия с клавиатурой не нашел.
Кому молиться?