Difference between revisions of "love.keyboard.isDown (日本語)"
m (Added notes. (checking method for combination keys)) |
m (→注釈) |
||
Line 22: | Line 22: | ||
== 注釈 == | == 注釈 == | ||
Ctrl, Alt, Shift などの修飾キーを押しながら別のキーが押された場合 (ショートカットキー、またはコンビネーションキー) の判定は [[love.keypressed (日本語)|love.keypressed]] では大幅な判定遅延の発生、キーリピートが効かないなど正常に動作しません。必ず [[love.update (日本語)|love.update]] 側で修飾キーの判定を行いフラグを立ててから [[love.keypressed (日本語)|love.keypressed]] で組み合わせ先のキーに対する処理を判定してください。 | Ctrl, Alt, Shift などの修飾キーを押しながら別のキーが押された場合 (ショートカットキー、またはコンビネーションキー) の判定は [[love.keypressed (日本語)|love.keypressed]] では大幅な判定遅延の発生、キーリピートが効かないなど正常に動作しません。必ず [[love.update (日本語)|love.update]] 側で修飾キーの判定を行いフラグを立ててから [[love.keypressed (日本語)|love.keypressed]] で組み合わせ先のキーに対する処理を判定してください。 | ||
+ | |||
+ | |||
+ | その他参考 : [https://love2d.org/forums/viewtopic.php?t=83706 help with movement - LÖVE] | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 52: | Line 55: | ||
</source> | </source> | ||
+ | |||
== 用例 == | == 用例 == | ||
=== キーを押し続けると値を加算します。 === | === キーを押し続けると値を加算します。 === |
Revision as of 14:48, 27 September 2017
特定のキーが押されたかどうか検出します。 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
関連
そのほかの言語
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