Лекция: Урок 15: Разное: Программирование клавиш
В 2.1 появились дополнительные возможности по работе с кнопками, первая — это keys.isDown(keyCode), которая заменяет старый способ с лазерами.
Использовать просто – если клавиша «up» нажата, то keys.isDown(«up») вернет true. Использовать можно в любом скрипте.
Вторая — это новое событие «onKey» которое работает по-другому. Это процедура с объектом в качестве аргумента: onKey = (e) => {скрипт}. Она вызывается каждый раз, когда нажимается или отпускается кнопка (а также при зажатой кнопке повторяется ее вызов, как в текстовом редакторе).
В объекте «e» передается несколько параметров:
e.pressed (true/false) — true если клавиша нажата, false если отпущена
e.keycode (string) – название кнопки, например: «backspace»
e.keychar (string) – символ нажатой кнопки (только для алфавитно-цифровых)
e.handled – можно установить в «true» чтобы выключить эту клавишу в интерфейсе
e.this – это сам объект в свойствах которого написан обработчик onKey
Некоторые клавиши, например «a» или «s» обрабатываются сначала интерфейсом и чтобы сцена нормально работала нужно переключиться в режим проигрывателя. Рекомендуется установить App.GUI.playMode = {sim.running} в любом onSpawn скрипте любого объекта.
Аналогично можно работать и с мышкой – коды кнопок «mouse_left», «mouse_right»
update = (e)=>{e.this.color = keys.isDown(«mouse_left»)? [1, 1, 1, 1]: [1, 1, 1, 0]}