Difference between revisions of "Joystick"
m |
(Added examples) |
||
Line 37: | Line 37: | ||
== Supertypes == | == Supertypes == | ||
* [[parent::Object]] | * [[parent::Object]] | ||
+ | == Examples == | ||
+ | === Display the last button pressed of a controller on-screen === | ||
+ | <source lang="Lua"> | ||
+ | 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 | ||
+ | </source> | ||
+ | === Move a circle with the d-pad of a controller === | ||
+ | <source lang="Lua"> | ||
+ | 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 | ||
+ | </source> | ||
== See Also == | == See Also == | ||
* [[parent::love.joystick]] | * [[parent::love.joystick]] |
Revision as of 23:43, 17 April 2014
Available since LÖVE 0.9.0 |
This type is not supported in earlier versions. |
Represents a physical joystick.
Contents
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:getDeviceInfo | Gets the OS-independent device info of the joystick. | 11.3 | |
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:getGamepadMappingString | Gets the full gamepad mapping string of this Joystick, or nil if it's not recognized as a gamepad. | 11.3 | |
Joystick:getGamepadType | Gets the GamepadType of the Joystick, if it's recognized as a gamepad. | 12.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:getJoystickType | Gets the JoystickType of the Joystick. | 12.0 | |
Joystick:getName | Gets the name of the joystick. | 0.9.0 | |
Joystick:getPlayerIndex | Gets the player index of this Joystick. This corresponds to an indicator light on many common gamepads. | 12.0 | |
Joystick:getSensorData | Gets the latest data for the given sensor type for this Joystick | 12.0 | |
Joystick:getVibration | Gets the current vibration motor strengths on a Joystick with rumble support. | 0.9.0 | |
Joystick:hasSensor | Gets whether the specified sensor exists in the Joystick. | 12.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:isSensorEnabled | Gets whether the specified sensor is currently enabled on this Joystick. | 12.0 | |
Joystick:isVibrationSupported | Gets whether the Joystick supports vibration. | 0.9.0 | |
Joystick:setPlayerIndex | Sets the player index of this Joystick. This corresponds to an indicator light on many common gamepads. | 12.0 | |
Joystick:setSensorEnabled | Enables or disables the specified sensor on this Joystick. | 12.0 | |
Joystick:setVibration | Sets the vibration motor speeds on a Joystick with rumble support. | 0.9.0 | |
Object:release | Immediately destroys the object's Lua reference. | 11.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 | |
GamepadType | Types of gamepad controllers. | 12.0 | |
JoystickHat | Joystick hat positions. | 0.5.0 | |
JoystickInputType | Types of Joystick inputs. | 0.9.0 | |
JoystickType | Types of Joysticks. | 12.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
- love.joystickadded
- love.joystickremoved
- love.joystickpressed
- love.joystickreleased
- love.joystickaxis
- love.joystickhat
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info