Keyboard
key variable
p5.js provides the key variable, which stores the most recently pressed key as a string. The sketch below shows the last pressed key at the canvas center.
Code Explanation
let lastKey = '';
function setup() {
createCanvas(200, 200);
textAlign(CENTER, CENTER);
textSize(32);
}
function draw() {
background(220);
text(lastKey, width / 2, height / 2);
}
function keyPressed() {
// Store the last pressed key
lastKey = key;
}- key: holds the most recently pressed key as a string.
text(string, x, y): draws text at(x, y).
Key presses
keyPressed() runs once whenever a key is pressed. Pressing 'r', 'g', or 'b' below changes the background color.
Code Explanation
let bgColor = 220;
function setup() {
createCanvas(200, 200);
}
function draw() {
background(bgColor);
}
function keyPressed() {
// Traditional conditionals
if (key === 'r') {
bgColor = color(255, 0, 0);
}
if (key === 'g') {
bgColor = color(0, 255, 0);
}
// Short-circuit alternative
key === 'b' && (bgColor = color(0, 0, 255));
}- keyPressed: fires when any key is pressed.
color(r, g, b): creates an RGB color.key === 'b' && ...uses short-circuiting: the right side runs only if the left side is true.
String templates (`...`)
String templates let you embed variables directly in text using ${value} syntax. This makes dynamic messages a bit simpler than manual concatenation.
The example below displays the last pressed key and the total number of key presses.
Code Explanation
let lastKey = '';
let pressCount = 0;
function setup() {
createCanvas(300, 200);
textAlign(CENTER, CENTER);
textSize(20);
}
function draw() {
background(220);
// Interpolates both variables into the display text
text(`You pressed '${lastKey}' (${pressCount} times)`, width / 2, height / 2);
}
function keyPressed() {
lastKey = key;
pressCount++;
}Quotes in JS: Single
'...' and double "..." quotes work the same for strings.
Book style: single quotes '...' are used throughout, except for string templates which require backticks `...` for interpolation with ${...}.Further reading
📌 p5.js Keyboard – Keyboard handling overview
📌 keyCode variable – Detect special keys (arrows, Enter, Backspace)
📌 keyIsDown() – Check if a specific key is currently held down