Joystick (日本語)

LÖVE 0.9.0 から使用可能
この型は以前のバージョンでは非対応です。

物理ジョイスティックを提供します。

コンストラクタ

love.joystick.getJoysticks (日本語) 接続されているジョイスティックの一覧を取得します。 Added since 0.9.0

関数

Joystick:getAxes (日本語) 各軸の方向を返します。 Added since 0.9.0
Joystick:getAxis (日本語) 軸の方向を返します。 Added since 0.9.0
Joystick:getAxisCount (日本語) ジョイスティックに実装されている軸の個数を取得します。 Added since 0.9.0
Joystick:getButtonCount (日本語) ジョイスティックに実装されているボタンの個数を取得します。 Added since 0.9.0
Joystick:getDeviceInfo (日本語) オペレーティング・システムに依存しないジョイスティックのデバイス情報を取得します。 Added since 11.3
Joystick:getGUID (日本語) 物理的なジョイスティックの機種に基づく固定された固有 GUID を取得します。 Added since 0.9.0
Joystick:getGamepadAxis (日本語) 仮想ゲームパッドの軸の方向を取得します。 Added since 0.9.0
Joystick:getGamepadMapping (日本語) ボタン、軸またはハットを仮想ゲームパッドの入力への割り当てを取得します。 Added since 0.9.0
Joystick:getGamepadMappingString (日本語) この Joystick (ジョイスティック) に関するゲームパッドのマッピング文字列を完全取得します。 nil の場合は指定の GUID でゲームパッドは認識されていません。 Added since 11.3
Joystick:getGamepadType (日本語) ゲームパッドとして認識されている場合に、ジョイスティックの GamepadType を取得します。 Added since 12.0
Joystick:getHat (日本語) ハットの方向を取得します。 Added since 0.9.0
Joystick:getHatCount (日本語) ジョイスティックに実装されているハットの個数を返します。 Added since 0.9.0
Joystick:getID (日本語) ジョイスティックの固有識別子を取得します。 Added since 0.9.0
Joystick:getJoystickType (日本語) ジョイスティックの JoystickType を取得します。 Added since 12.0
Joystick:getName (日本語) ジョイスティックの機器名を取得します。 Added since 0.9.0
Joystick:getPlayerIndex (日本語) この Joystick のプレイヤーインデックスを取得します。これは一般的なゲームパッドに搭載されているインジケータライトと対応関係にあります。 Added since 12.0
Joystick:getVibration (日本語) ジョイスティックがブルブル対応であれば現在の振動モーターの強さを取得します。 Added since 0.9.0
Joystick:isConnected (日本語) ジョイスティックが接続されているかどうか取得します。 Added since 0.9.0
Joystick:isDown (日本語) ジョイスティックのボタンが押されているか確認します。 Added since 0.9.0
Joystick:isGamepad (日本語) ジョイスティックがゲームパッドとして認識されているかどうか取得します。 Added since 0.9.0
Joystick:isGamepadDown (日本語) 仮想ゲームパッドのボタンとしてジョイスティックが押されているか確認します。 Added since 0.9.0
Joystick:isVibrationSupported (日本語) ジョイスティックが振動に対応しているか取得します。 Added since 0.9.0
Joystick:setPlayerIndex (日本語) この Joystick のプレイヤーインデックスを設定します。これは一般的なゲームパッドに搭載されているインジケータライトと対応関係にあります。 Added since 12.0
Joystick:setVibration (日本語) ジョイスティックがブルブル対応であれば振動モーターの速度を設定します。 Added since 0.9.0
Object:release (日本語) Lua が参照しているオブジェクトを即時破棄します。 Added since 11.0
Object:type (日本語) オブジェクトの種類を文字列形式で取得します。
Object:typeOf (日本語) オブジェクトが特定の種類かどうか確認します。

列挙型

GamepadAxis (日本語) 仮想ゲームパッドの軸。 Added since 0.9.0
GamepadButton (日本語) 仮想ゲームパッドのボタン。 Added since 0.9.0
GamepadType (日本語) ゲームパッドコントローラーの機種。 Added since 12.0
JoystickHat (日本語) ジョイスティックのハットの位置。 Added since 0.5.0
JoystickInputType (日本語) ジョイスティックの入力の種類。 Added since 0.9.0
JoystickType (日本語) ジョイスティックの種類。 Added since 12.0

上位型

用例

最後にコントローラーで押されたボタンを画面上に表示します。

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

コントローラーのD-パッド(十字キー)で円を移動します

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

ゲームパッドのスティックで円の移動とサイズを変更します

function love.load()
	local joysticks = love.joystick.getJoysticks()
	joystick = joysticks[1]

	leftCircle = {x = 200, y = 280, size = 50}
	rightCircle = {x = 600, y = 280, size = 50}
	speed = 300
end

function love.update(dt)
	if not joystick then return end

	leftCircle.x = leftCircle.x + dt*speed*joystick:getGamepadAxis("leftx")
	leftCircle.y = leftCircle.y + dt*speed*joystick:getGamepadAxis("lefty")
	
	rightCircle.x = rightCircle.x + dt*speed*joystick:getGamepadAxis("rightx")
	rightCircle.y = rightCircle.y + dt*speed*joystick:getGamepadAxis("righty")
end

function love.draw()
	local leftSize = (1-joystick:getGamepadAxis("triggerleft"))*leftCircle.size
	local rightSize = (1-joystick:getGamepadAxis("triggerright"))*rightCircle.size
	love.graphics.circle("fill", leftCircle.x, leftCircle.y, leftSize)
	love.graphics.circle("fill", rightCircle.x, rightCircle.y, rightSize)
end

関連


そのほかの言語