Key.isDown — это свойство библиотеки Paper.js, которое
позволяет определить, удерживается ли в данный момент определённая
клавиша на клавиатуре. Оно является частью глобального объекта
Key и возвращает булево значение: true, если
клавиша нажата, и false, если отпущена.
if (Key.isDown('space')) {
console.log('Пробел удерживается');
}
Здесь 'space' — это идентификатор клавиши. Paper.js
поддерживает как буквенные и цифровые клавиши, так и функциональные
клавиши вроде 'shift', 'control',
'alt', 'up', 'down',
'left', 'right'.
Key.isDownНепрерывное отслеживание Key.isDown
проверяет текущее состояние клавиши в любой момент выполнения скрипта.
Это отличается от событий onKeyDown и onKeyUp,
которые срабатывают только в момент нажатия или отпускания.
Использование в анимации Часто
Key.isDown применяется в функции onFrame,
чтобы реализовать движение объектов в реальном времени:
var circle = new Path.Circle({
center: view.center,
radius: 30,
fillColor: 'blue'
});
function onFrame(event) {
if (Key.isDown('left')) {
circle.position.x -= 5;
}
if (Key.isDown('right')) {
circle.position.x += 5;
}
if (Key.isDown('up')) {
circle.position.y -= 5;
}
if (Key.isDown('down')) {
circle.position.y += 5;
}
}
В этом примере движение объекта происходит плавно, пока клавиша удерживается.
'a',
'b', 'c', … 'z''0'–'9',
'+', '-', '.',
',''shift',
'control', 'alt', 'meta''up',
'down', 'left', 'right',
'space', 'enter', 'tab''escape',
'backspace', 'delete'Использование правильного идентификатора критично для корректной работы проверки.
Key.isDown можно использовать для проверки
одновременного удержания нескольких клавиш:
if (Key.isDown('shift') && Key.isDown('up')) {
console.log('Shift + Стрелка вверх');
}
Такой подход полезен для реализации ускоренного движения, модифицированных действий и игровых механик.
onFrame
для плавного отслеживания.Key.isDown для одиночных действий,
требующих единственного срабатывания — для этого лучше
onKeyDown.var rect = new Path.Rectangle({
point: [100, 100],
size: [50, 50],
fillColor: 'red'
});
var speed = 2;
function onFrame(event) {
if (Key.isDown('up')) rect.position.y -= speed;
if (Key.isDown('down')) rect.position.y += speed;
if (Key.isDown('left')) rect.position.x -= speed;
if (Key.isDown('right')) rect.position.x += speed;
if (Key.isDown('shift')) speed = 5;
else speed = 2;
}
В этом коде объект перемещается в зависимости от удерживаемых клавиш,
а shift увеличивает скорость.
Key.isDown обеспечивает постоянный
доступ к состоянию клавиши.onFrame).Эта функциональность делает Paper.js удобным инструментом для интерактивных приложений и игр, где важно непрерывное отслеживание действий пользователя.