Skip to content

Courage.Input#

require("Courage.Input") exposes keyboard and controller input queries.

Loading the module#

local Input = require("Courage.Input")
import * as Input from "Courage.Input"

API#

Input.last_scancode() (returns integer)#

Returns the scancode of the last key pressed on the keyboard. Returns 0 if no key was pressed.

local Input = require("Courage.Input")
local scancode = Input.last_scancode()
if scancode > 0 then
    print("Last key scancode: " .. tostring(scancode))
end
import * as Input from "Courage.Input"
const scancode = Input.last_scancode()
if (scancode > 0) {
    console.log(`Last key scancode: ${scancode}`)
}

Game Controller API#

Input.pad_trigger(pad?) (returns integer)#

Returns a bitmask of controller buttons pressed (triggered) on controller index pad (defaults to controller 0).

Input.pad_hold(pad?) (returns integer)#

Returns a bitmask of controller buttons currently held down on controller index pad (defaults to controller 0).

Input.BUTTON table#

Bitmask constants for matching controller button queries:

Constant Value Button
Input.BUTTON.LEFT 0x0001 D-Pad Left
Input.BUTTON.RIGHT 0x0002 D-Pad Right
Input.BUTTON.DOWN 0x0004 D-Pad Down
Input.BUTTON.UP 0x0008 D-Pad Up
Input.BUTTON.Z 0x0010 Z Trigger
Input.BUTTON.R 0x0020 R Trigger
Input.BUTTON.L 0x0040 L Trigger
Input.BUTTON.A 0x0100 A Button
Input.BUTTON.B 0x0200 B Button
Input.BUTTON.X 0x0400 X Button
Input.BUTTON.Y 0x0800 Y Button
Input.BUTTON.START 0x1000 Start / Pause Button
local Input = require("Courage.Input")

local triggered = Input.pad_trigger(0)
if bit32.band(triggered, Input.BUTTON.A) ~= 0 then
    print("A button pressed!")
end
import * as Input from "Courage.Input"

const triggered = Input.pad_trigger(0)
if ((triggered & Input.BUTTON.A) !== 0) {
    console.log("A button pressed!")
}