Keys¶
The keys API allows access to the state of the keyboard without hooking any events. The downside is that you will not get information about when a key was pressed, only IF it is pressed or not. Additionally you will not give information about wether an uppercase or lowercase letter was pressed, you would also need to track the shift key to get this information. For simple player controls this might however be the easiest API to use.
Reference¶
- keys.isPressed(key)¶
Return true, if the given key is pressed.
- Parameters:
key (
str
) – the key to check- Return type:
boolean
- keys.areAllPressed(key)¶
Return true, if all the given keys in the array are pressed
- Parameters:
key (
array
) – An array of keys to check- Return type:
boolean
- keys.isOnePressed(key)¶
Return true, if at least one of the given keys in the array is pressed
- Parameters:
key (
array
) – An array of keys to check- Return type:
boolean
Examples¶
Checking for presence of keys¶
local Keys = require 'engine/keys'
local Vector3 = require 'engine/math/vector3'
-- If any key is pressed that we care for, we need to move the character
local movement = Vector3.new()
if Keys.isOnePressed({ Keys.W, Keys.ArrowUp }) then
movement.z = movement.z - SPEED
end
if Keys.isOnePressed({ Keys.S, Keys.ArrowDown }) then
movement.z = movement.z + SPEED
end
if Keys.isOnePressed({ Keys.A, Keys.ArrowLeft }) then
movement.x = movement.x - SPEED
end
if Keys.isOnePressed({ Keys.D, Keys.ArrowRight }) then
movement.x = movement.x + SPEED
end
Keys constants¶
local keys = {
Backspace = "Backspace",
Tab = "Tab",
Enter = "Enter",
Shift = "Shift",
Control = "Control",
Alt = "Alt",
Pause = "Pause",
CapsLock = "CapsLock",
Escape = "Escape",
Space = "Space",
PageUp = "PageUp",
PageDown = "PageDown",
End = "End",
Home = "Home",
ArrowLeft = "ArrowLeft",
ArrowUp = "ArrowUp",
ArrowRight = "ArrowRight",
ArrowDown = "ArrowDown",
PrintScreen = "PrintScreen",
Insert = "Insert",
Delete = "Delete",
Digit0 = "Digit0",
Digit1 = "Digit1",
Digit2 = "Digit2",
Digit3 = "Digit3",
Digit4 = "Digit4",
Digit5 = "Digit5",
Digit6 = "Digit6",
Digit7 = "Digit7",
Digit8 = "Digit8",
Digit9 = "Digit9",
A = "KeyA",
B = "KeyB",
C = "KeyC",
D = "KeyD",
E = "KeyE",
F = "KeyF",
G = "KeyG",
H = "KeyH",
I = "KeyI",
J = "KeyJ",
K = "KeyK",
L = "KeyL",
M = "KeyM",
N = "KeyN",
O = "KeyO",
P = "KeyP",
Q = "KeyQ",
R = "KeyR",
S = "KeyS",
T = "KeyT",
U = "KeyU",
V = "KeyV",
W = "KeyW",
X = "KeyX",
Y = "KeyY",
Z = "KeyZ",
Meta = "Meta",
ContextMenu = "ContextMenu",
F1 = "F1",
F2 = "F2",
F3 = "F3",
F4 = "F4",
F5 = "F5",
F6 = "F6",
F7 = "F7",
F8 = "F8",
F9 = "F9",
F10 = "F10",
F11 = "F11",
F12 = "F12",
F13 = "F13",
F14 = "F14",
F15 = "F15",
F16 = "F16",
F17 = "F17",
F18 = "F18",
F19 = "F19",
F20 = "F20",
F21 = "F21",
F22 = "F22",
F23 = "F23",
F24 = "F24",
NumLock = "NumLock",
ScrollLock = "ScrollLock",
Semicolon = "Semicolon",
Equal = "Equal",
Comma = "Comma",
Minus = "Minus",
Period = "Period",
Slash = "Slash",
Backquote = "Backquote",
BracketLeft = "BracketLeft",
Backslash = "Backslash",
BracketRight = "BracketRight",
Quote = "Quote",
AltGraph = "AltGraph",
Dead = "Dead",
NumPad0 = "NumPad0",
NumPad1 = "NumPad1",
NumPad2 = "NumPad2",
NumPad3 = "NumPad3",
NumPad4 = "NumPad4",
NumPad5 = "NumPad5",
NumPad6 = "NumPad6",
NumPad7 = "NumPad7",
NumPad8 = "NumPad8",
NumPad9 = "NumPad9",
NumPadMultiply = "NumPadMultiply",
NumPadAdd = "NumPadAdd",
NumPadSubtract = "NumPadSubtract",
NumPadDecimal = "NumPadDecimal",
NumPadDivide = "NumPadDivide",
NumPadEnter = "NumPadEnter",
NumPadEqual = "NumPadEqual"
}