Keyboard
A simple keyboard API. You can use it move the main sprite or respond to a key press.
let { initKeys, keyPressed } = kontra;
// this function must be called first before keyboard
// functions will work
initKeys();
function update() {
if (keyPressed('arrowleft')) {
// move left
}
}
import { initKeys, keyPressed } from 'path/to/kontra.mjs';
// this function must be called first before keyboard
// functions will work
initKeys();
function update() {
if (keyPressed('arrowleft')) {
// move left
}
}
import { initKeys, keyPressed } from 'kontra';
// this function must be called first before keyboard
// functions will work
initKeys();
function update() {
if (keyPressed('arrowleft')) {
// move left
}
}
Table of Contents
Available Keys
Below is a list of keys that are provided by default. If you need to extend this list, you can use the keyMap property.
- a-z
- 0-9
- enter, esc, space, arrowleft, arrowup, arrowright, arrowdown
initKeys()
Initialize keyboard event listeners. This function must be called before using other keyboard functions.
keyMap
Object. map of KeyboardEvent code values to key names. Add to this object to expand the list of available keys.
let { keyMap, onKey } = kontra;
keyMap['ControlRight'] = 'ctrl';
onKey('ctrl', function(e) {
// handle ctrl key
});
import { keyMap, onKey } from 'path/to/kontra.mjs';
keyMap['ControlRight'] = 'ctrl';
onKey('ctrl', function(e) {
// handle ctrl key
});
import { keyMap, onKey } from 'kontra';
keyMap['ControlRight'] = 'ctrl';
onKey('ctrl', function(e) {
// handle ctrl key
});
keyPressed(keys)
Check if a key is currently pressed. Use during an update()
function to perform actions each frame.
let { Sprite, initKeys, keyPressed } = kontra;
initKeys();
let sprite = Sprite({
update: function() {
if (keyPressed('arrowleft')){
// left arrow pressed
}
else if (keyPressed('arrowright')) {
// right arrow pressed
}
if (keyPressed('arrowup')) {
// up arrow pressed
}
else if (keyPressed('arrowdown')) {
// down arrow pressed
}
}
});
import { Sprite, initKeys, keyPressed } from 'path/to/kontra.mjs';
initKeys();
let sprite = Sprite({
update: function() {
if (keyPressed('arrowleft')){
// left arrow pressed
}
else if (keyPressed('arrowright')) {
// right arrow pressed
}
if (keyPressed('arrowup')) {
// up arrow pressed
}
else if (keyPressed('arrowdown')) {
// down arrow pressed
}
}
});
import { Sprite, initKeys, keyPressed } from 'kontra';
initKeys();
let sprite = Sprite({
update: function() {
if (keyPressed('arrowleft')){
// left arrow pressed
}
else if (keyPressed('arrowright')) {
// right arrow pressed
}
if (keyPressed('arrowup')) {
// up arrow pressed
}
else if (keyPressed('arrowdown')) {
// down arrow pressed
}
}
});
keyPressed Parameters
-
keys
String or an Array of Strings. Key or keys to check for pressed state.
keyPressed Return value
Boolean. true
if the key is pressed, false
otherwise.
offKey(keys[, options])
Unregister the callback function for a key. Takes a single key or an array of keys.
let { offKey } = kontra;
offKey('arrowleft');
offKey(['enter', 'space']);
import { offKey } from 'path/to/kontra.mjs';
offKey('arrowleft');
offKey(['enter', 'space']);
import { offKey } from 'kontra';
offKey('arrowleft');
offKey(['enter', 'space']);
offKey Parameters
-
keys
String or an Array of Strings. Key or keys to unregister.
-
options
Optional Object. Unregister options.
-
options.handler
Optional 'keydown' or 'keyup'. Whether to unregister from keydown or keyup events. Defaults to
keydown
.
onKey(keys, callback[, options])
Register a function to be called when a key is pressed. Takes a single key or an array of keys. Is passed the original KeyboardEvent as a parameter.
By default, the default action will be prevented for any bound key. To not do this, pass the preventDefault
option.
let { initKeys, onKey } = kontra;
initKeys();
onKey('p', function(e) {
// pause the game
});
onKey(['enter', 'space'], function(e) {
// fire gun
});
import { initKeys, onKey } from 'path/to/kontra.mjs';
initKeys();
onKey('p', function(e) {
// pause the game
});
onKey(['enter', 'space'], function(e) {
// fire gun
});
import { initKeys, onKey } from 'kontra';
initKeys();
onKey('p', function(e) {
// pause the game
});
onKey(['enter', 'space'], function(e) {
// fire gun
});
onKey Parameters
-
keys
String or an Array of Strings. Key or keys to register.
-
callback
Function. The function to be called when the key is pressed.
-
options
Optional Object. Register options.
-
options.handler
Optional 'keydown' or 'keyup'. Whether to register to keydown or keyup events. Defaults to
keydown
.-
options.preventDefault
Optional Boolean. Call
event. preventDefault()
when the key is activated. Defaults totrue
.