love.keyboard.isDown (日本語)

特定のキーが押されたかどうか検出します。 love.keypressed または love.keyreleased とは混同しないでください。

関数

概要

down = love.keyboard.isDown( key )

引数

KeyConstant key
検出したいキー。

返値

boolean down
true ならばキーは押されており、それ以外ならば false です。

関数

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

概要

anyDown = love.keyboard.isDown( key, ... )

引数

KeyConstant key
検出したいキー。
KeyConstant ...
検出したい追加のキー。

返値

boolean anyDown
true ならば用意された任意のキーは押されており、それ以外ならば false です。

注釈

Ctrl, Alt, Shift などの修飾キーを押しながら別のキーが押された場合 (ショートカットキー、またはコンビネーションキー) の判定は love.keypressed では大幅な判定遅延の発生、キーリピートが効かないなど正常に動作しません。必ず love.update 側で修飾キーの判定を行いフラグを立ててから love.keypressed で組み合わせ先のキーに対する処理を判定してください。

local isDownLeftCtrl = false

function love.draw()
-- ~処理をこちらへ
end


function love.update(dt)
	isDownLeftCtrl = love.keyboard.isDown('lctrl')	-- Ctrl, Alt などのキー判定は love.update() に置いてください。
	love.timer.sleep(0.1)
end

function love.keypressed(key)

	if key == "tab" then
		love.keyboard.setKeyRepeat(false)	-- 対象となるキーに対してのみキーリピートを無効にします(押しっぱなし対策)。

		if isDownLeftCtrl == true then
-- ~処理をこちらへ
		end
	end
end

function love.keyreleased()
	love.keyboard.setKeyRepeat(true)
end

用例

キーを押し続けると値を加算します。

local val = 0;
function love.update(dt)
    -- キーを押し続けることにより毎秒ごとに 1 を変数へ加算します。
    if love.keyboard.isDown("up") then
        val = val + dt
        print(val)
    end

    -- WASD キーのいずれかが押された時に毎秒ごとに 1 を変数へ減算します。
    if love.keyboard.isDown('w', 'a', 's', 'd') then
        val = val - dt
        print(val)
    end
end

関連


そのほかの言語