W3cubDocs

/LÖVE

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. 0.9.0

Functions

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.

Enums

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

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

© 2006–2016 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/Joystick