Joystick

Available since LÖVE 0.9.0
This type is not supported in earlier versions.

Represents a physical joystick.

Constructors

love.joystick.getJoysticks Gets a list of connected Joysticks. Added since 0.9.0

Functions

Joystick:getAxes Gets the direction of each axis. Added since 0.9.0
Joystick:getAxis Gets the direction of an axis. Added since 0.9.0
Joystick:getAxisCount Gets the number of axes on the joystick. Added since 0.9.0
Joystick:getButtonCount Gets the number of buttons on the joystick. Added since 0.9.0
Joystick:getGUID Gets a stable GUID unique to the type of the physical joystick. Added since 0.9.0
Joystick:getGamepadAxis Gets the direction of a virtual gamepad axis. Added since 0.9.0
Joystick:getGamepadMapping Gets the button, axis or hat that a virtual gamepad input is bound to. Added since 0.9.0
Joystick:getHat Gets the direction of a hat. Added since 0.9.0
Joystick:getHatCount Gets the number of hats on the joystick. Added since 0.9.0
Joystick:getID Gets the joystick's unique identifier. Added since 0.9.0
Joystick:getName Gets the name of the joystick. Added since 0.9.0
Joystick:getVibration Gets the current vibration motor strengths on a Joystick with rumble support. Added since 0.9.0
Joystick:isConnected Gets whether the Joystick is connected. Added since 0.9.0
Joystick:isDown Checks if a button on the Joystick is pressed. Added since 0.9.0
Joystick:isGamepad Gets whether the Joystick is recognized as a gamepad. Added since 0.9.0
Joystick:isGamepadDown Checks if a virtual gamepad button on the Joystick is pressed. Added since 0.9.0
Joystick:isVibrationSupported Gets whether the Joystick supports vibration. Added since 0.9.0
Joystick:setVibration Sets the vibration motor speeds on a Joystick with rumble support. Added since 0.9.0
Object:type Gets the type of the object as a string.
Object:typeOf Checks whether an object is of a certain type.

Enums

GamepadAxis Virtual gamepad axes. Added since 0.9.0
GamepadButton Virtual gamepad buttons. Added since 0.9.0
JoystickHat Joystick hat positions.
JoystickInputType Types of Joystick inputs. Added since 0.9.0

Supertypes

Examples

Display the last button pressed of a controller on-screen

local lastbutton = "none"
 
function love.gamepadpressed(joystick, button)
    lastbutton = button
end
 
function love.draw()
    love.graphics.print("Last gamepad button pressed: "..lastbutton, 10, 10)
end

Move a circle with the d-pad of a controller

function love.load()
    local joysticks = love.joystick.getJoysticks()
    joystick = joysticks[1]
 
    position = {x = 400, y = 300}
    speed = 300
end
 
function love.update(dt)
    if not joystick then return end
 
    if joystick:isGamepadDown("dpleft") then
        position.x = position.x - speed * dt
    elseif joystick:isGamepadDown("dpright") then
        position.x = position.x + speed * dt
    end
 
    if joystick:isGamepadDown("dpup") then
        position.y = position.y - speed * dt
    elseif joystick:isGamepadDown("dpdown") then
        position.y = position.y + speed * dt
    end
end
 
function love.draw()
    love.graphics.circle("fill", position.x, position.y, 50)
end

See Also

Other Languages