Difference between revisions of "love.keyboard.isDown (日本語)"
m (→注釈) |
m |
||
Line 83: | Line 83: | ||
{{#set:Since=000}} | {{#set:Since=000}} | ||
== そのほかの言語 == | == そのほかの言語 == | ||
− | {{i18n|love.keyboard.isDown}} | + | {{i18n (日本語)|love.keyboard.isDown}} |
Revision as of 12:54, 6 June 2019
特定のキーが押されたかどうか検出します。 love.keypressed または love.keyreleased とは混同しないでください。
Contents
関数
概要
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 で組み合わせ先のキーに対する処理を判定してください。
その他参考 : help with movement - LÖVE
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
関連