Difference between revisions of "love.keyboard.isDown (日本語)"
m |
m (→注釈) |
||
(One intermediate revision by the same user not shown) | |||
Line 23: | Line 23: | ||
== 関数 == | == 関数 == | ||
− | {{newin (日本語)|[[0.10.2 (日本語)]]|102|type=異形}} | + | {{newin (日本語)|[[0.10.2 (日本語)|0.10.2]]|102|type=異形}} |
=== 概要 === | === 概要 === | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 34: | Line 34: | ||
=== 返値 === | === 返値 === | ||
{{param|boolean|anyDown|true ならば指定されたキーは押されており、それ以外ならば false です。}} | {{param|boolean|anyDown|true ならば指定されたキーは押されており、それ以外ならば false です。}} | ||
− | |||
== 注釈 == | == 注釈 == | ||
* この関数はコールバック関数ではありませんのでオーバーライド(上書き)しないでください。 | * この関数はコールバック関数ではありませんのでオーバーライド(上書き)しないでください。 | ||
− | * | + | * Ctrl, Alt, Shift などの修飾キーを押しながら別のキーが押された場合 (ショートカットキー、またはコンビネーションキー) の判定は [[love.keypressed (日本語)|love.keypressed]] では大幅な判定遅延の発生、キーリピートが効かないなど正常に動作しません。必ず [[love.update (日本語)|love.update]] 側で修飾キーの判定を行いフラグを立ててから [[love.keypressed (日本語)|love.keypressed]] で組み合わせ先のキーに対する処理を判定してください。または、 keypressd / keyreleased を使わず love.update でキー判定を行ってください。 |
Latest revision as of 06:40, 27 June 2023
特定のキーが押されたかどうか検出します。 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 です。
関数
LÖVE 0.10.2 から使用可能 |
この異形は以前のバージョンでは非対応です。 |
概要
anyDown = love.keyboard.isDown({ key, ... })
引数
table keys
- 検出するキーを記したテーブル。
KeyConstant key
- 検出するキー。
KeyConstant ...
- 続けて検出するキー。
返値
boolean anyDown
- true ならば指定されたキーは押されており、それ以外ならば false です。
注釈
- この関数はコールバック関数ではありませんのでオーバーライド(上書き)しないでください。
- Ctrl, Alt, Shift などの修飾キーを押しながら別のキーが押された場合 (ショートカットキー、またはコンビネーションキー) の判定は love.keypressed では大幅な判定遅延の発生、キーリピートが効かないなど正常に動作しません。必ず love.update 側で修飾キーの判定を行いフラグを立ててから love.keypressed で組み合わせ先のキーに対する処理を判定してください。または、 keypressd / keyreleased を使わず love.update でキー判定を行ってください。
その他参考 : 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
関連