pressed
v1.3.1
Published
A simple library for tracking which keyboard keys are currently being pressed.
Downloads
53
Maintainers
Readme
pressed.js
Tracks which keys on the keyboard are currently being pressed. This is very useful in game development when you may want to respond to multiple key presses in your update loop.
Example
It works best to see a live example.
Usage
import pressed from "pressed"
// Initialize the system
pressed.start()
// Later...
// Check for a key code.
if (pressed(65)) {
console.log('"A" key is currently pressed.')
}
// Works with strings too.
if (pressed("A")) {
console.log('"A" key is currently pressed.')
}
// Even works with unicode symbols for modifier keys!
if (pressed("⌘")) {
console.log('"Command" key (or windows key) is currently pressed.')
}
// Mouse buttons (0-4) are tracked too.
if (pressed.mouseButton(0)) { // pressed("mouse 0") also works
console.log('Left mouse button is currently pressed.')
}
String to keycode mappings use the keycode module. Here's a list of all the supported strings to keycode mappings.
// Check multiple keys at once
if (pressed.every("shift", "L")) {
console.log('Both "Shift" and "L" are currently pressed.')
}
if (pressed.some("a", "e", "i", "o", "u")) {
console.log('At least one vowel key is currently pressed.')
}
// List all keys currently pressed.
console.log(pressed.listAllKeys()) // E.g. ['L', 'shift']
console.log(pressed.listAllKeyCodes()) // E.g. [76, 16]
// When you're all done using it...
pressed.stop()
Overriding window
Normally, this module will not work outside of a browser environment¹. However, if for some reason you want to force it to work, or if you just want to listen to events somewhere besides the window
object, you can pass a custom object to the start()
function with addEventListener
and removeEventListener
defined.
const myCustomEventEmitter = {
addEventListener: (eventType, listenerFunction) => {
// Code to add listener.
},
removeEventListener: (eventType, listenerFunction) => {
// Code to remove listener.
}
}
pressed.start(myCustomEmitter)
// Later...
pressed.stop(myCustomEmitter)
¹: Node users may want to check out keypress.
Weirdness
- Caps Lock (key code 20) will appear pressed as long as it's on. If you call pressed.start() when the caps lock key is on, it won't appear pressed until after you turn it off and on again.