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

Represents a physical joystick.


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


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


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



Display the last button pressed of a controller on-screen

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

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
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
    if joystick:isGamepadDown("dpup") then
        position.y = position.y - speed * dt
    elseif joystick:isGamepadDown("dpdown") then
        position.y = position.y + speed * dt
function love.draw()
    love.graphics.circle("fill", position.x, position.y, 50)

See Also

© 2006–2016 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.